给出一个包含 0 .. N 中 N 个数的序列,找出0
.. N 中没有出现在序列中的那个数。
样例
N = 4
且序列为 [0,
1, 3]
时,缺失的数为2
。
注意
可以改变序列中数的位置。
挑战
在数组上原地完成,使用O(1)的额外空间和O(N)的时间。
代码如下:
public int findMissing(int[] nums) {
HashMap hash = new HashMap();
for (int i = 0; i < nums.length; i++)
hash.put(nums[i], true);
for (int j = 0; j < nums.length + 1; j++) {
if (!hash.containsKey(j))
return j;
}
return 0;
}