/*利用桶排序类似方法:用原数组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;
}
};LeetCode之First Missing Positive
最新推荐文章于 2021-01-16 16:57:58 发布
本文介绍了一种使用桶排序思想寻找数组中最小缺失正整数的方法。通过原地修改输入数组来标记每个正整数的位置,从而高效找到第一个缺失的正数。
143

被折叠的 条评论
为什么被折叠?



