标签:ima 应该 turn 出现 一个 图片 first public 正数
1 class Solution {
2 public:
3 int firstMissingPositive(vector<int>& nums) {
4 if(nums.empty()){return 1;}
5 int n=nums.size();
6 for(int i=0;i<n;++i){
7 while(nums[i]>0 and nums[i]<=n and nums[nums[i]-1]!=nums[i]){
//把nums[i]应该在的位置的数字和当前nums[i]交换,一直交换直到当前位置i的值等于i+1,或者nums[i]<=0 or nums[i]>n
8 swap(nums[i],nums[nums[i]-1]);
9 }
10 }
11 for(int i=0;i<n;++i){
12 if(nums[i]!=i+1){//从前往后顺序查找,一旦找到对应位置的值不等于序号加1,说明这个数字没有出现,返回即可
13 return i+1;
14 }
15 }
16 return n+1;
17 }
18 };
标签:ima 应该 turn 出现 一个 图片 first public 正数
原文地址:https://www.cnblogs.com/FdWzy/p/12289372.html