Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >leetcode之第k个缺失的正整数

leetcode之第k个缺失的正整数

原创
作者头像
code4it
修改于 2020-11-16 01:53:21
修改于 2020-11-16 01:53:21
41300
代码可运行
举报
文章被收录于专栏:码匠的流水账码匠的流水账
运行总次数:0
代码可运行

本文主要记录一下leetcode之第k个缺失的正整数

题目

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。

请你找到这个数组里第 k 个缺失的正整数。



示例 1:

输入:arr = [2,3,4,7,11], k = 5
输出:9
解释:缺失的正整数包括 [1,5,6,8,9,10,12,13,...] 。第 5 个缺失的正整数为 9 。
示例 2:

输入:arr = [1,2,3,4], k = 2
输出:6
解释:缺失的正整数包括 [5,6,7,...] 。第 2 个缺失的正整数为 6 。


提示:

1 <= arr.length <= 1000
1 <= arr[i] <= 1000
1 <= k <= 1000
对于所有 1 <= i < j <= arr.length 的 i 和 j 满足 arr[i] < arr[j] 


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/kth-missing-positive-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
    public int findKthPositive(int[] arr, int k) {
        int len = arr.length;
        for (int i=0; i<len; i++) {
            if (arr[i] >= k+i+1) {
                return k+i;
            }
        }
        return k+len;
    }
}

小结

这里根据严格升序排序的条件来解题,遍历数组,对于数组的值是否大于等于k+i+1(由于i从0开始,这里+1变为第N个的语义),是的话直接返回k+i,遍历到最后没有提前返回的话,返回k+len。

doc

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
1539. 第 k 个缺失的正整数
Michel_Rolle
2024/02/11
3K0
LeetCode 1566. 重复至少 K 次且长度为 M 的模式
给你一个正整数数组 arr,请你找出一个长度为 m 且在数组中至少重复 k 次的模式。
Michael阿明
2021/02/19
4520
LeetCode 第 32 场双周赛(983/2957,前33.2%)
全国排名: 983 / 2957,33.2%;全球排名: 2962 / 10463,28.3%
Michael阿明
2021/02/19
3520
leetcode第30场双周赛
Day 是集合 {“1st”, “2nd”, “3rd”, “4th”, …, “30th”, “31st”} 中的一个元素。 Month 是集合 {“Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”, “Jul”, “Aug”, “Sep”, “Oct”, “Nov”, “Dec”} 中的一个元素。 Year 的范围在 [1900, 2100] 之间。 请你将字符串转变为 YYYY-MM-DD 的格式,其中:
你的益达
2020/08/05
5220
LeetCode 2053. 数组中第 K 个独一无二的字符串(哈希)
给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字符串 。 如果 少于 k 个独一无二的字符串,那么返回 空字符串 “” 。
Michael阿明
2022/01/07
4340
LeetCode 2248. 多个数组求交集(set)
给你一个二维整数数组 nums ,其中 nums[i] 是由 不同 正整数组成的一个非空数组,按 升序排列 返回一个数组,数组中的每个元素在 nums 所有数组 中都出现过。
Michael阿明
2022/05/10
5660
2023-05-16:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。 请你找到这个数组里第 k 个缺失的正整数。 输入:arr = [2,3,
2023-05-16:给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。
福大大架构师每日一题
2023/05/16
3080
LeetCode 1340. 跳跃游戏 V(DP)
除此以外,你从下标 i 跳到下标 j 需要满足:arr[i] > arr[j] 且 arr[i] > arr[k] ,其中下标 k 是所有 i 到 j 之间的数字(更正式的,min(i, j) < k < max(i, j))。
Michael阿明
2020/07/13
6250
LeetCode 1130. 叶值的最小代价生成树(区间DP/单调栈贪心)
在所有这样的二叉树中,返回每个非叶节点的值的最小可能总和。 这个和的值是一个 32 位整数。
Michael阿明
2021/02/19
4540
leetcode之复写零
这里遍历数组,计算值为0的个数count,然后从后遍历数据,遇到0就递减该值,然后判断i + count是否超出数组长度,没有的话则将i的值设置到i + count,紧接着再当前位置值为0且i + count + 1不超出数组长度的时候将i + count + 1的值设置为0。
code4it
2020/11/20
2500
leetcode之复写零
LeetCode 2261. 含最多 K 个可整除元素的子数组
给你一个整数数组 nums 和两个整数 k 和 p ,找出并返回满足要求的不同的子数组数,要求子数组中最多 k 个可被 p 整除的元素。
Michael阿明
2022/05/10
3460
LeetCode 1310. 子数组异或查询(前缀异或)
有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。
Michael阿明
2020/07/13
1K0
LeetCode 1246. 删除回文子数组(区间DP)
给你一个整数数组 arr,每一次操作你都可以选择并删除它的一个 回文 子数组 arr[i], arr[i+1], ..., arr[j]( i <= j)。
Michael阿明
2020/07/13
1.1K0
LeetCode 1481. 不同整数的最少数目(计数+排序+贪心)
给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目。
Michael阿明
2020/07/13
5890
盲猜会手写 TopK 模板题(快排/堆/二叉搜索树/计数排序)
一、用快排最最最高效解决 TopK 问题:O(N) class Solution { public int[] getLeastNumbers(int[] arr, int k) { if (k == 0 || arr.length == 0) { return new int[0]; } // 最后一个参数表示我们要找的是下标为k-1的数 return quickSearch(arr, 0, arr.lengt
韩旭051
2021/04/14
4520
leetcode201场周赛
T1:整理字符串,T2:找出第N个二进制字符串中的第K位, T3:和为目标值的最大数目不重叠非空子数组数目,T4:切棍子的最小成本(区间dp)
你的益达
2020/08/11
6180
LeetCode *992. K 个不同整数的子数组(双指针)(滑动窗口)
给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定独立的子数组为好子数组。
SakuraTears
2022/01/13
3740
leetcode之最小绝对差
这里先对数组进行排序,然后遍历数据判断前后差的绝对值,看是否比存储的绝对差小,若小则情况结果集,更新最小绝对差;若等于则追加该记录到结果集。
code4it
2020/11/18
3500
leetcode之最小绝对差
LeetCode 1218. 最长定差子序列(哈希map)
给你一个整数数组 arr 和一个整数 difference,请你找出 arr 中所有相邻元素之间的差等于给定 difference 的等差子序列,并返回其中最长的等差子序列的长度。
Michael阿明
2020/07/13
4560
LeetCode 1640. 能否连接形成数组(哈希)
给你一个整数数组 arr ,数组中的每个整数 互不相同 。 另有一个由整数数组构成的数组 pieces,其中的整数也 互不相同 。请你以 任意顺序 连接 pieces 中的数组以形成 arr 。但是,不允许 对每个数组 pieces[i] 中的整数重新排序。
Michael阿明
2021/02/19
2940
推荐阅读
相关推荐
1539. 第 k 个缺失的正整数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验