当前位置: 首页 > news >正文

第 k 个缺失的正整数

题目链接

第 k 个缺失的正整数

题目描述

注意点

  • 1 <= arr.length <= 1000
  • 1 <= arr[i] <= 1000
  • 1 <= k <= 1000
  • 找到这个数组里第 k 个缺失的正整数
  • arr 严格升序

解答思路

  • 初始想到的是从1开始遍历正整数,记录到达某个正整数时数组中缺失的正整数数量lack,当lack = k时返回当前的正整数即可
  • 参照题解使用二分查找,在数组中任意一个位置i其缺失的正整数数量为arr[i] - i - 1,初始l = 0,r = arr.length - 1,每次计算l和r的中间位置mid缺失的正整数数量lack,如果lack >= k,说明第k个缺失的正整数在mid左侧,r = mid - 1;如果lack < k,说明第k个缺失的正整数在mid右侧,l = mid + 1,最终第 k 个缺失的正整数就等于k + r + 1

代码

class Solution {
    public int findKthPositive(int[] arr, int k) {
        int n = arr.length;
        int l = 0;
        int r = n - 1;
        while (l <= r) {
            int mid = l + ((r - l) >> 1);
            int lack = arr[mid] - mid - 1;
            if (lack >= k) {
                r = mid - 1;
            } else {
                l = mid + 1;
            }
        }
        return k + r + 1;
    }
}

关键点

  • 二分查找的思想
  • 第i个位置缺失的正整数数量是非严格递增的
  • 注意最终结果res = k + r + 1是由arr[r] + k - lack推出的,其中lack是r位置缺失的正整数数量,lack = arr[r] - r - 1
http://www.dtcms.com/a/55125.html

相关文章:

  • DevSecOps CI/CD 管道中数字供应链安全的集成策略
  • 应用案例 | 精准控制,高效运行—宏集智能控制系统助力SCARA机器人极致性能
  • App Standby省电机制流程
  • 常见排序算法鉴赏(原理剖析+动图演示)
  • Vue-flow中动态流程图的实现
  • ffmpeg windows 基本命令
  • 安装并运行hadoop程序
  • macos 程序 运行
  • clang-format安装配置与vscode支持
  • 【附源码】Java动漫视频网站源码【带弹幕系统】+SpringBoot+VUE+前后端分离
  • 有关Java中的IO(2) --字符流以及其他流
  • upload-labs详解(13-20)文件上传分析
  • manus是什么?能干啥?
  • 基于SpringBoot的车辆违章信息管理系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • LLM 学习(二 完结 Multi-Head Attention、Encoder、Decoder)
  • LN1132 低功耗 300mA 低压差 CMOS 电压稳压器
  • debain12.9使用unsloth微调Qwen2.5模型
  • Ubuntu20.04搭建gerrit code review
  • nnMamba:基于状态空间模型的3D生物医学图像分割、分类和地标检测
  • 深度学习算法实战——情感语音合成(主页有源码)
  • LeetCode 2523. Closest Prime Numbers in Range(2025/3/7每日一题)
  • OSI七大模型 --- 发送邮件
  • 操作系统 2.4-内核级线程基本实现原理
  • 小程序和页面生命周期详解
  • 游戏元宇宙崛起:AI代理IP驱动虚拟世界“无限可能”​
  • web3区块链
  • 火绒终端安全管理系统V2.0--纵深防御体系(分层防御)之规则拦截层
  • 深度学习笔记——循环神经网络RNN
  • 2025年Q2(桥门式)起重机司机考试题库
  • 换元积分法的数学本质与几何可视化——一场关于变量代换的数学探秘