Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one that is missing from the array.
Example 1:
Input: [3,0,1]
Output: 2
Example 2:
Input: [9,6,4,2,3,5,7,0,1]
Output: 8
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
LeetCode第268题,丢失的数字,本人Accepted代码如下:
class Solution {
public int missingNumber(int[] nums) {
int[] copy = new int[(nums.length + 1)];
for(int i = 0; i < nums.length; i++) {
copy[nums[i]] = nums[i];
}
int m = 0;
for(int i = 0; i < copy.length; i++) {
if (copy[i] == 0) {
m = i;
}
}
return m;
}
}
此代码符合题目所要求的线性时间复杂度与常数空间复杂度,如有更优的解法,欢迎交流。