【C++刷题】位运算
- 一、二进制中最右侧的1
- 1、位1的个数
- (1)题目链接
- (2)解析
- (3)代码
- 2、比特位计数
- (1)题目链接
- (2)解析
- (3)代码
- 3、汉明距离
- (1)题目链接
- (2)解析
- (3)代码
- 二、异或规律
- 1、只出现一次的数字
- (1)题目链接
- (2)解析
- (3)代码
- 2、只出现一次的数字III
- (1)题目链接
- (2)解析
- (3)代码
- 三、判定字符是否唯一
- 1、题目链接
- 2、解析
- 3、代码
- 四、丢失的数字
- 1、题目链接
- 2、解析+代码
- 五、两整数之和
- 1、题目链接
- 2、解析
- 3、代码
- 六、只出现一次的数字II
- 1、题目链接
- 2、解析
- 3、代码
- 七、消失的两个数字
- 1、题目链接
- 2、解析
- 3、代码
一、二进制中最右侧的1
1、位1的个数
(1)题目链接
leetcode链接
(2)解析
(3)代码
2、比特位计数
(1)题目链接
leetcode链接
(2)解析
(3)代码
3、汉明距离
(1)题目链接
leetcode链接
(2)解析
两个数异或一下,因为异或一下不同的数为1,相同的数为0,所以能够找到有几个不同数的位置了,再逐个干掉右边的1,ret++即可。
(3)代码
二、异或规律
1、只出现一次的数字
(1)题目链接
leetcode链接
(2)解析
(3)代码
2、只出现一次的数字III
(1)题目链接
leetcode链接
(2)解析
(3)代码
三、判定字符是否唯一
1、题目链接
leetcode链接
2、解析
3、代码
四、丢失的数字
1、题目链接
leetcode链接
2、解析+代码
五、两整数之和
1、题目链接
leetcode链接
2、解析
先疑惑求一个值,再按位与右移算出另一个控制的进位值。
3、代码
六、只出现一次的数字II
1、题目链接
leetcode链接
2、解析
3、代码
七、消失的两个数字
1、题目链接
leetcode链接