美文网首页数据结构与算法
数组--缺失的第一个整数

数组--缺失的第一个整数

作者: 暮想sun | 来源:发表于2020-01-06 11:22 被阅读0次

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数。
    例:输入: [7,8,9,11,12] 输出: 1
    思路:排序,根据排序好的数组,假设最小未出现的正整数为min(初始化为1),依次比较再替换min

        public static int firstMissingPositive(int[] nums) {
            //排序
            Arrays.sort(nums);
            int left = 0;
            int min = 1;
            //循环数组元素
            while (left < nums.length) {
    
                //数据小于min,向右移动
                if (nums[left] < min) {
                    left++;
                } else if (nums[left] == min) {
                    left++;
                    min = min + 1;
                    //出现大于min的数据,说明min为最小
                } else if (nums[left] > min) {
                    break;
                }
            }
    
            return min;
    
        }
    

    相关文章

      网友评论

        本文标题:数组--缺失的第一个整数

        本文链接:https://www.haomeiwen.com/subject/msohactx.html