沿用“置位法”:
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
for(int i =0 ; i<nums.size(); )
{
if(nums[i]!=i+1&&nums[i]>0&&nums[i]<nums.size()&&nums[i]!=nums[nums[i]-1])
{
int temp = nums[i];
nums[i]=nums[temp-1];
nums[temp-1]=temp;
}
else
i++;
}
for(int i =0;i<nums.size();i++)
{
if(nums[i]!=i+1)
return i+1;
}
return nums.size()+1;
}
};
本文介绍了一种使用置位法寻找数组中最小缺失正整数的方法。通过遍历和调整数组元素的位置来实现高效查找,避免了额外的数据结构使用。
259

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



