package LeetCode_268
/**
* 268. Missing Number
* https://leetcode.com/problems/missing-number/description/
*
* 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
* */
class Solution {
fun missingNumber(nums: IntArray): Int {
/*
* solution 1:sum
* */
/*val n = nums.size
//the sum of 0-size
val sum = (0 + n) * (n + 1) / 2
return sum - nums.sum()*/
//solution 2: xor
//我们将这个少了一个数的数组合0到n之间完整的数组异或一下,那么相同的数字都变为0了,剩下的就是少了的那个数字了
var x = 0
for (i in nums.indices) {
x = x xor (i + 1) xor nums[i]
}
return x
}
}