The Problem:
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?
Right Solution: the sum of size+1 numbers - the sum of the array = the missing number
public class Solution {
public int missingNumber(int[] nums) {
int size = nums.length;
if(size < 1)
return 0;
else
{
int n1 = (size+1)*size/2;
int n2 = 0;
for(int i = 0; i<size; i++)
n2 = n2+nums[i];
return n1-n2;
}
}
}