题解 | #序列找数#

序列找数

http://www.nowcoder.com/practice/a7d1856a72404ea69fdfb5786d65539c

由于序列中的每个值只出现一次,这里可考虑使用哈希记录的思路。 此时可提前知道数组长度,因此可以使用visited数组记录当前值是否存在;数组的索引即为序列nums中的值。 若nums[i]出现一次,则visited[nums[i]]=1;否则为0; 最后遍历visited数组,找到不存在的值。 代码如下: public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] nums = new int[n]; int[] visited = new int[n+1]; int res= 0;

    for(int i = 0; i < n; i++){
        int x = sc.nextInt();
        nums[i] = x;
        visited[x] = 1;//记录
    }

    //输出结果,判断不存在的值
    for(int i = 0; i <= n; i++){
        if(visited[i] != 1){
            res = i;
            break;
        }
    }
    System.out.println(res);
    return;
}

}

全部评论

相关推荐

听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务