题目
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.
我的解法
public class Solution {
public int missingNumber(int[] nums) {
int sum = 0;
for(int n : nums){
sum += n;
}
return nums.length * (nums.length + 1) / 2 - sum;
}
}
算法分析:运用斐波拉契数列求和。
答案解法(异或操作符)
public class Solution {
public int missingNumber(int[] nums) {
int xor = 0;
for (int i = 0; i < nums.length; i++) {
xor = xor ^ i ^ nums[i];
}
return xor ^ nums.length;
}
}