自学内容网 自学内容网

力扣刷题--1539. 第 k 个缺失的正整数【简单】

题目描述

给你一个 严格升序排列 的正整数数组 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,结束循环

完整代码

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;
    }
};


原文地址:https://blog.csdn.net/m0_75266675/article/details/142879755

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!