zoukankan      html  css  js  c++  java
  • 缺失的第一个正整数

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

    示例 1:

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

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

    输入: [7,8,9,11,12]
    输出: 1
     

    提示:

    你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间

    package leetcode;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class FirstMissPositiveSolution {
        int firstMissPositive(int[] nums){
            int len = nums.length;
            Set<Integer> hashSet = new HashSet<>();
            for(int num : nums){
                hashSet.add(num);
            }
            for(int i = 1 ;i < len ;i++){
                if(! hashSet.contains(i)){
                    return i;
                }
            }
            return  len+1 ;
        }
        public static void main(String[] args){
            int[] nums={-1,1,2,4,0,3,58,1};
            int result = new FirstMissShuSolution().firstMissShu(nums);
            System.out.println(result);
        }
    }
    package leetcode;
    
    import java.util.Arrays;
    
    public class FirstMissShuSolution {
        int firstMissShu(int[] nums){
            if(nums == null){
                return 1;
            }
            Arrays.sort(nums);
    
            int compare = 0 ;
            for(int i=0 ;i < nums.length; i++){
                if(nums[i] <= 0 ){
                    continue;
                }
                if(i > 0 && nums[i-1] == nums[i]){
                    continue;
                }
                compare++;
                if(compare < nums[i]){
                    return  compare;
                }
            }
            return compare+1;
        }
        public static void main(String[] args){
            int[] nums={0,-1,-2,2,3,4,5,6,78};
            int n = new FirstMissShuSolution().firstMissShu(nums);
            System.out.println(n);
        }
    }
  • 相关阅读:
    树形视图和列表视图中的HitTest
    VC++中隐藏代码
    C++指针&引用简笔
    自动化流程学习笔记
    xampp for linux遇见的几个问题
    django用户验证模块核心
    win+r 快捷
    python 获取桌面路径
    我的linux常用操作
    个人悟出的一些观点
  • 原文地址:https://www.cnblogs.com/goodtest2018/p/13908386.html
Copyright © 2011-2022 走看看