您的位置 首页 JAVA(2017)

LeetCode – 268. Missing Number

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.

For example,
Given nums = [0, 1, 3] return 2.

Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

这道题看起来挺简单的,但是有个陷阱就是他的array不是sorted的,要么自己sort(但是至少O(nlongn),所以用其他办法。除了我这个办法其实还有个数学的方法,把所有数字加起来,然后减掉,N个连续数想加的结果。

public class Solution {
    public int missingNumber(int[] nums) {
        int[] n = new int[nums.length+1];
        for(int i=0;i<nums.length;i++){
            n[nums[i]] ++;
        }
        for(int i=0;i<n.length;i++){
            if(n[i]!=1){
                return i;
            }
        }
        return nums.length;
    }
}
看完了?留个评分呗?
[0人评了分,平均: 0/5]

本站原创文章皆遵循“署名-非商业性使用-相同方式共享 3.0 (CC BY-NC-SA 3.0)”。转载请保留以下标注:

原文来源:《LeetCode – 268. Missing Number》

发表评论

电子邮件地址不会被公开。

返回顶部