xinyu04

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

LeetCode First Missing Positive Map

Given an unsorted integer array nums, return the smallest missing positive integer.

You must implement an algorithm that runs in O(n) time and uses constant extra space.

Solution

我们只需要求出最小的缺失正数,找到一个下界即可:用 Map 记录原数组,然后从 1 遍历原数组个数的连续正数即可。

点击查看代码
class Solution {
private:
map<int,int> mp;
public:
int firstMissingPositive(vector<int>& nums) {
int ans = 1;
int n = nums.size();
if(n==1){
if(nums[0]<1)return 1;
else if(nums[0]==1)return 2;
else return 1;
}
int fg = 0;
for(int i=0;i<n;i++){
if(nums[i]<0)continue;
else{
mp[nums[i]]=1;
}
}
for(int i=0;i<n;i++){
if(!mp[ans])return ans;
else ans++;
}
return ans;
}
};

posted on   Blackzxy  阅读(22)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示