LEETCODE-缺失的第一個正數41
阿新 • • 發佈:2019-02-13
給定一個未排序的整數陣列,找出其中沒有出現的最小的正整數。
示例 1:
輸入: [1,2,0]
輸出: 3
示例 2:輸入: [3,4,-1,1]
輸出: 2
示例 3:輸入: [7,8,9,11,12]
輸出: 1
說明:你的演算法的時間複雜度應為O(n),並且只能使用常數級別的空間。
解題思路:
第一個未出現的正數應在1-陣列長度+1之間。
class Solution {
public int firstMissingPositive(int[] nums) {
int [] temp = new int[nums.length+2];
for(int i = 0;i<nums.length;i++){
if(nums[i]>0&&nums[i]<=nums.length){
temp[nums[i]]++;
}
}
int index = 1;
while(index<temp.length){
if(temp[index]==0)
return index;
index++;
}
return 1;
}
}