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?
----------------------------------------------------------------------------------------------------------------
思路
按照我的思路,先对数组进行了排序,然后对nums长度进行判断,然后对nums的元素进行判断,然后循环。。。。。。
最后耗时惨不忍睹。最后参考一下其他已提交的代码。
代码
public class Solution {
public int missingNumber(int[] nums) {
int sum = 0;
int n = nums.length ;
int i = 0;
while(i < nums.length)
{
sum += nums[i];
i++;
}
return (1+n)*n/2 - sum;
}
}
这个对数组进行求和,然后与等差公式计算的和求差,计算结果即missing number。