题解 | #缺失的第一个正整数#

缺失的第一个正整数

http://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5

时间复杂度O(n),空间复杂度O(n)的做法:开辟一个新的数组arr,长度为nums.length+1,遍历nums数组,如果非负且值小于nums的长度,则把arr[nums[i]]置1。然后遍历辅助数组,找到下标不为1的第一个元素即可。

public class Solution {
    public int minNumberDisappeared (int[] nums) {
        int []arr = new int [nums.length+1];
        for(int i=0;i<nums.length;++i){
            if(nums[i]<=nums.length&&nums[i]>0){
                arr[nums[i]] =1;
            }
        }
        for(int i=1;i<arr.length;++i)
            if(arr[i]==0)return i;
      return arr.length;
    }
}
全部评论
将 新的数组arr 换成boolean数组性能会更好一点
点赞 回复 分享
发布于 2022-03-10 14:27

相关推荐

牛客464620405号:随便投,随便找,中国经过40多年的改革开放,人才缺口和职位空缺是巨大的,中国现在属于遍地黄金的年代,属于90后和00大机遇的时代
点赞 评论 收藏
分享
03-07 17:32
已编辑
中南大学 C++
是只吗喽:淘天和米哈游之间只隔了15分钟,有点极限了xd
点赞 评论 收藏
分享
评论
5
1
分享

创作者周榜

更多
牛客网
牛客企业服务