《力扣面试150题》题单拓展——位运算

发布时间 2023-11-30 22:22:36作者: 小柴cyl

《力扣面试150题》题单拓展——位运算

1.基础知识

运算 符号 解读
并集 | ans = ans |4;
(1000 ∪ 0010) = 1010
交集 & 按位求交集
移位 <<左移 1<<1 = 10(2进制)
int m = l+((r-l)>>1); 二分法常用
count = num>>i & 1;    //右移i位,并和1与,得到的是i位上面是否是1
int len = 32-__builtin_clz(s);		//二进制的长度

//a ^ b = new_ans  ->  b = a ^ new_ans

2.判断某位是否1

137.只出现一次的数字II

统计每位上面1的个数,模3,按所统计的位并集起来


191.位1的个数

先统计位数,然后n>>i &1 就可以了


190.颠倒二进制位

先统计,再移位放回

3.&

201.数字范围按位与

n 和 n+1 与后,某一位开始的后面都会被置为0,只有前面的公共前缀会被保留下来,找到即可

4.按位遍历运算

421.数组中两个数的最大异或值

两数之和的异或版本,叠加了 ^ |