
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
int n = nums.size();
for (int i = 0; i < n; ++i) {
while (nums[i] > 0 && nums[i] <= n && nums[nums[i] - 1] != nums[i]) {
swap(nums[nums[i] - 1], nums[i]);
}
}
for (int i = 0; i < n; ++i) {
if (nums[i] != i + 1) {
return i + 1;
}
}
return n + 1;
}
};
博客给出一段C++代码,定义了一个Solution类,其中的firstMissingPositive函数用于查找数组中首个缺失的正整数。通过交换元素位置,再遍历数组判断元素是否与索引对应,最终得出结果。

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



