题解 | #缺失的第一个正整数# C++
缺失的第一个正整数
https://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int minNumberDisappeared(vector<int>& nums) { // write code here sort(nums.begin(),nums.end()); //从小到大排序 int index = 1; //最小的正整数 起始 应该为1 for(int i = 0;i<nums.size();i++){ if(nums[i]<=0) continue; //排序后题目要求找最小正整数,所以<=0的直接跳过 if(nums[i]-index==0) { //数组中第一个正整数 ,如果nums[i] - index = 0,说明 nums[i] 位置 index++; //是最小的正整数,此时index++ continue; } else { if(nums[i]-index>0){ // 找到最小的正整数 ,比如 nums[0] = 3 ,index = 1,此时 3-1>0,说明缺少最小的1 return index; } } } return nums[nums.size()-1] +1; //没有在for循环中找到,那说明 最小的就是nums最大值加1 } };