本文是在看了很多leetcode大神的题解之后整理的一个笔记,分享出来供大家参考。其中很多图来自这些大佬的原创,如果有冒犯到作者,请作者联系我。
&运算
可以用来求模
如
a&1 <=> a%2
巧用n&(n-1)运算
**(n-1)解析:**二进制数字最右边的1变成0,此1右边的0都变成1
**n&(n-1)解析:**二进制数字n最右边的1变成0,其余不变
![Picture10.png](https://i-blog.csdnimg.cn/blog_migrate/58aec251a233a17b0fdac8989caf19d8.png)
剑指offer 15. 二进制1的个数
class Solution:
def hammingWeight(self, n: int) -> int:
res = 0
while n:
res += 1
n &