1539. 第 k 个缺失的正整数 - 力扣(LeetCode)
给你一个 严格升序排列 的正整数数组
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]
class Solution {public int findKthPositive(int[] arr, int k) {int num = 1;int len = arr.length;int count = 1;//记录已经缺了几个数for(int i = 0 ; i < len ; i++) {if(arr[i] != num) {while(arr[i]!=num) {num++;count++;if(count == k) break;}}if(count==k) break;num++;}return num+k-count;}
}
每日一题,今天是简单题。
这道题其实模拟就可以做出来了。用num模拟数字,用count模拟寻找的次数。一旦count到达相应的次数就可以跳出来了。而能用num模拟数字,主要是因为数组是严格递增的。
简单写完,是周六,大家休息一下吧。也可以去题解处看看更快的解法。