一、常见位运算总结:
1、基础位运算(^)
其中异或^有2种理解。
2、位图bitset相关(&|)
test判断第x位是1函数0:
可以让n右移,也可以让1左移,习惯上选择第一种
(n>>x)&1 判断结果是否为1
set把第x位变为1:
n |= (1<<x)
reset把第x位变为0:
n &= ~(1<<x)
3、一个数n最右侧的1(&)
leetcode191 338 461
n & -n
n & (n-1) 把最右侧的1变成0
4、^的运算律
LeetCode 136 260
二、相关题目
1、判断字符是否唯一
unique位图思想
1、力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
2、丢失的数字
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
3、两整数之和
利用异或,不进位加法,得到不进位的数
然后利用&并左移1位得到进位的数
重复该过程,直到一个变成0,另一个自然就是sum。
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
4、只出现一次的数字②
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
5、消失的两个数字
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台