1. 程式人生 > >LEETCODE-缺失的第一個正數41

LEETCODE-缺失的第一個正數41

給定一個未排序的整數陣列,找出其中沒有出現的最小的正整數。

示例 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; } }