標籤:miss height use 最小 注意 ret etc logs back
41. 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.
題目:尋找第一個丟失的整數意思為【1,2,4,5,6,7】那麼丟失的是3,如果【1,1000】,這時丟失的是2
注意需要在O(n)時間內而且不允許使用額外的空間
所以題目是需要你在從1 ~ +∞的範圍中,找到沒有在輸入數組出現過的最小的正public class Solution { public int firstMissingPositive(int[] nums) { int len=nums.length;if(nums==null||len==0)
return 1; //首先判斷當前元素是否為整數,否則直接過,並且num[j]<len不然造成數組越界,最後判斷如果nums[j]-1!=[j]防止死迴圈 for(int j=0;j<len;j++){ while(nums[j]>0&&nums[j]<=len&&(nums[j]-1)!=j){ int temp=nums[nums[j]-1]; if(temp==nums[j]){ break; } nums[nums[j]-1]=nums[j]; nums[j]=temp; } } for(int j=0;j<len;j++){ if(nums[j]!=j+1){ return j+1; } }
return len+1; }}
41. First Missing Positive【leetcode】尋找第一個丟失的整數,java,演算法