41. 缺失的第一个正数

 1 class Solution 
 2 {
 3 public:
 4     int firstMissingPositive(vector<int>& nums) 
 5     {
 6         int minV = INT_MAX;
 7         int maxV = INT_MIN;
 8         int n = nums.size();
 9         int res = 1;
10         for(int i = 0;i < n;i ++) //求出数组中的最大值与最小值
11         {
12             if(minV > nums[i]) minV = nums[i];
13             if(maxV < nums[i]) maxV = nums[i];
14         }
15         //如果最小值大于1或者最大值小于1,则返回1
16         if(minV > 1 || maxV < 1) return 1;
17         minV = max(minV,1);// 找到区间[1,maxV]
18         for(auto a : nums)
19         {
20             //如果可以找到最小值,最小值就++
21             auto it = find(nums.begin(),nums.end(),minV);
22             if(it != nums.end()) minV++;
23         }
24         return minV;//返回最小值
25     }
26 };

 

posted @ 2020-03-30 15:07  Jinxiaobo0509  阅读(101)  评论(0)    收藏  举报