js ^ operator
位运算
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_XOR_assignment
js 按位异或运算符 ^
// Bitwise XOR
x = 0;
y = 5;
x ^ y;
// 5
/*
000 = 0
^
101 = 5
---
101 = 5
*/
/*
011 = 3
^
111 = 7
---
100 = 4
*/
二进制 按位 异或运算 === 二进制 按位 !(或运算)
- x === y, return 0
对应位置的 bit 相同,则返回 0 (即 !1 + 0)
- x !== y, return 1
对应位置的 bit 不同,则返回 1 (即 !0 + 0)
按位 XOR 赋值
let x = 0;
let y = 1;
x ^= y
# equal to
x = x ^ y
LeetCode 算法
single-number
https://leetcode.com/problems/single-number/
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function(nums) {
return nums.reduce((sum, i) => sum ^ i, 0);
};
// Time complexity : O(n)
// Space complexity : O(1)
/// test
singleNumber([1, 2, 3, 3, 3, 2, 2, 1])
refs
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators
©xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!