LeetCode之First Missing Positive

来源:互联网 发布:php是后端还是前端 编辑:程序博客网 时间:2024/05/17 21:06
/*利用桶排序类似方法:用原数组nums[i-1]存i+1。然后遍历寻找第一个未出现的数字。参考自:https://github.com/soulmachine/leetcode*/class Solution {public:    int firstMissingPositive(vector<int>& nums) {        if(nums.empty()) return 1;        for(int i = 0; i < nums.size();){            if(nums[i] > 0 && nums[i] < nums.size()+1 && nums[i] != nums[nums[i]-1]){                swap(nums[i], nums[nums[i]-1]);            }            else ++i;        }        for(int i = 0; i < nums.size(); ++i){            if(nums[i] != i+1) return i+1;        }        return nums.size()+1;    }};

0 0
原创粉丝点击