版权声明:本文为博主原创文章,未经博主允许可以转载。(转呀转呀/笑哭),希望标注出处hhh https://blog.csdn.net/qq_36428171/article/details/89448395
题目:
给出一个有序数组 A,数组中的每个数字都是 独一无二的,找出从数组最左边开始的第 K 个缺失数字。
提示:
1 <= A.length <= 50000
1 <= A[i] <= 1e7
1 <= K <= 1e8
题目链接:有序数组中的缺失元素
C++:
class Solution {
public:
int missingElement(vector<int>& nums, int k) {
int lens = nums.size();
if(lens == 1)
return nums[0] + k;
int tmp = nums[0];
int cnt = 0;
int ret;
for(int i = 1; i < lens; i++){
if(nums[i] -1 != tmp){
cnt = cnt + nums[i] - tmp - 1;
tmp = nums[i];
}
else{
tmp = nums[i];
}
if(cnt >= k){
ret = tmp - cnt + k - 1;
break;
}
if(i == lens - 1){
ret = tmp + k - cnt;
}
}
return ret;
}
};