41. 缺失的第一个正数

    xiaoxiao2023-11-22  36

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数。

    示例 1:

    输入: [1,2,0] 输出: 3

    示例 2:

    输入: [3,4,-1,1] 输出: 2

    示例 3:

    输入: [7,8,9,11,12] 输出: 1
    package leetCode5_20; import java.util.Arrays; /** * @author : caoguotao * @date 创建时间:2019年5月25日 下午9:20:49 * @version 1.0 * @parameter * @since * @return */ public class Solution41 { public static void main(String[] args) { Solution41 s = new Solution41(); int[] nums = {1,1,2,2}; int res = s.firstMissingPositive(nums); System.out.println(res); } public int firstMissingPositive(int[] nums) { Arrays.sort(nums); int len = nums.length; if(len == 0) { return 1; } int res = 1; //所有数比1大 if(nums[0] > 1) { return 1; } //所以数比1小 if(nums[len -1] <= 0) { return 1; } for(int i = 0; i < len - 1; i++) { if(nums[i] > 0) { if(nums[i] == nums[i + 1]) { }else { if(nums[i] == res) { res++; }else { return res; } } } } if(res == nums[len - 1]) { res++; } return res; } }

     

    最新回复(0)