美文网首页工作生活
leecode 41 求缺失的第一个正整数

leecode 41 求缺失的第一个正整数

作者: 小强不是蟑螂啊 | 来源:发表于2019-07-03 11:46 被阅读0次

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

    示例 1:

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

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

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

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

    var firstMissingPositive = function(nums) {
        if(nums.length ==0) return 1;//为空数组的特例
        nums.sort(function(a,b){return a-b});//排序
        nums = [... new Set(nums)] //去掉重复数字
        let index = nums.indexOf(1);//求1的位置
        if(index<0) return 1;
        for(var i=index;i<nums.length;i++){//返回不递加1的元素
            if(nums[i] != (i-index)+1) return (i-index)+1
        }
      //数据都累加1,返回最大的值并加1
        return nums[nums.length-1]+1
        
    };

    相关文章

      网友评论

        本文标题:leecode 41 求缺失的第一个正整数

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