041 First Missing Positive 第一个缺失的正数
给一个未排序的数组,找出第一个缺失的正整数。
例如,
[1,2,0] 返回 3,
[3,4,-1,1] 返回 2。
你的算法应该在 O(n) 的时间复杂度内完成并且使用常数量的空间。
详见:https://leetcode.com/problems/first-missing-positive/description/
Java实现:
class Solution { public int firstMissingPositive(int[] nums) { int n=nums.length; if(n<1||nums==null){ return 1; } for(int i=0;i<n;++i){ while(nums[i]>0&&nums[i]<=n&&nums[i]!=nums[nums[i]-1]){ int tmp=nums[nums[i]-1]; nums[nums[i]-1]=nums[i]; nums[i]=tmp; } } for(int i=0;i<n;++i){ if(nums[i]!=i+1){ return i+1; } } return n+1; } }
参考:https://www.cnblogs.com/grandyang/p/4395963.html