题目描述
给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。
请你找到这个数组里第 k 个缺失的正整数。
示例 1:
输入:arr = [2,3,4,7,11], k = 5
输出:9
解释:缺失的正整数包括 [1,5,6,8,9,10,12,13,...] 。第 5 个缺失的正整数为 9 。
算法分析
遍历1---无穷大,如果在arr当中没有找到,就加入v,如果v的大小达到了count,结束循环
完整代码
cpp
class Solution {
public:
int findKthPositive(vector<int>& arr, int k) {
vector<int>v;//用于保存,不在arr当中的整数
for(int i=1;i<INT_MAX;i++)//注意INT_MAX的使用
{
//使用find进行查找
if(find(arr.begin(),arr.end(),i)==arr.end())//如果在arr中没有找到
v.push_back(i);
int count=v.size();//v数组的大小
if(count==k)
{
return v[k-1];
}
}
return -1;
}
};