当前位置: 代码迷 >> 综合 >> leetcode-41 First Missing Positive
  详细解决方案

leetcode-41 First Missing Positive

热度:84   发布时间:2023-12-16 05:36:22.0

Given an unsorted integer array, find the smallest missing positive integer.

Example 1:

Input: [1,2,0]
Output: 3

Example 2:

Input: [3,4,-1,1]
Output: 2

Example 3:

Input: [7,8,9,11,12]
Output: 1

 

本文的要求:查找出缺失的最小正整数,并要求时间复杂度为O(n),

本题思路,新建一个数组用于存放对应的数字是否存在如

tmp[0]=1 表示 数字1存在  tmp[1] = 0 表示数字2不存在 用index+1来表示对应的数字:

 

 

    public int firstMissingPositive(int[] nums) {
        
        int n = nums.length;
        int [] tmps = new int[nums.length];
        for(int index=0;index<n;index++) {
            if(nums[index] >= 1 && nums[index]<=n) {
                tmps[nums[index]-1] = 1;
            }
        }
        int index = 0;
        for(;index<tmps.length;index++) {
            if(tmps[index]<=0) {
                break;
            }
        }      
        return index+1;
        
    }

  相关解决方案