First Missing Positive
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0]
return 3
,
and [3,4,-1,1]
return 2
.
Your algorithm should run in O(n) time and uses constant space.
class Solution { public: int firstMissingPositive(vector<int>& nums) { int i = 0; int size = nums.size(); while (i < size) { if(nums[i] == i + 1) i++; else if(nums[i] < i+1 || nums[i] > size || nums[i] == nums[nums[i]-1] ){ nums[i] = nums[--size]; }else{ swap(nums[nums[i]-1],nums[i]); } } return i+1; } };
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步