题目描述
给出一个有序数组A,数组中的每个数字都是独一无二的,找出从数组最左边开始的第K个缺失数字
示例1:
输入:A=[4,7,9,10],k = 1
输出:5
解释:第一个缺失值为5
示例2:
输入:A=[4,7,9,10],K=3
输出:8
解释:缺失值有[5,6,8,,,,],因此第三个缺失值为8
示例3:
输入:A=[1,2,4],K=3
输出:6
解释:缺失值有[3,5,6,7,.....],因此第三个缺失值为6
解题思路
int missingElement(vector<int>& nums, int k) {
int len = nums.size();
if(len == 1) return nums[0]+k;
for(int i=1;i<len;i++){
int tmp = nums[i]-nums[i-1]-1;
if(tmp == 0) continue;
if(k>tmp) k-=tmp;
else return nums[i-1]+k;
}
return nums[len-1]+k;
}