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

缺失的第一个正整数

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

相关推荐

01-02 00:50
三峡大学 Java
程序员牛肉:这简历一出手就离失业不远了。 作为一家公司来讲,我如果要招日常实习生,那我对实习生最基本的要求就是要能干活,毕竟你就待三四个月,谁会留心培养你? 那么除了院校之外,最重要的就是项目和实习了。没有实习的话项目就好好搞。 但是你说你这个项目吧:课程作业管理系统和TMS运输管理系统。这两个基本就和闹着玩差不多。 你作为一个想要应聘Java开发实习生的人,对后端的理解还仅仅停留在:“使用mapper和sql映射”,“使用SQL进行多表调用”,“基于MySQL简历表结构”,“基于Spring boot完成CURD操作”这种玩具上......... 找不到后端实习的
点赞 评论 收藏
分享
2024-12-13 14:44
天津师范大学 运营
神哥不得了:并不是吧所有学的都写到简历上,这样就是好简历,而是你找啥岗位,对应招聘要求去写你的简历
点赞 评论 收藏
分享
评论
5
1
分享

创作者周榜

更多
牛客网
牛客企业服务