异或运算
1.0和任何数字异或 === 任何数字本身
2.相同数字异或 === 0,不相同数字异或 === 1
3.遵循交换律,结合律
题目
给定一个包含 [0, n]
中 n
个数的数组 nums
,找出 [0, n]
这个范围内没有出现在数组中的那个数。
输入:nums = [3,0,1] 输出:2
输入:nums = [0,1] 输出:2
输入:nums = [0] 输出:1
解题
var missingNumber = function (nums) { let res = 0 res = res ^ nums.length for(let i = 0; i < nums.length; i++) { res = res ^ i ^ nums[i] } return res }; //[0,1,3] //res = 0 ^ 3 //res = 0 ^ 3 ^ 0 ^ 0 //res = 0 ^ 3 ^ 0 ^ 0 ^ 1 ^ 1 //res = 0 ^ 3 ^ 0 ^ 0 ^ 1 ^ 1 ^ 2 ^ 3 //res = 0 ^ 0 ^ 0 ^ 1 ^ 1 ^ 3 ^ 3 ^ 2 //res = 2
标签:数字,nums,res,异或,let,丢失,运算 From: https://www.cnblogs.com/karle/p/17814560.html