算法基础--位运算

一、常见位运算总结:

1、基础位运算(^)

算法基础--位运算_第1张图片

其中异或^有2种理解。

2、位图bitset相关(&|)

test判断第x位是1函数0:

可以让n右移,也可以让1左移,习惯上选择第一种

(n>>x)&1   判断结果是否为1

算法基础--位运算_第2张图片

set把第x位变为1:

n |= (1<

算法基础--位运算_第3张图片

reset把第x位变为0:

n &= ~(1<

算法基础--位运算_第4张图片

3、一个数n最右侧的1(&)

leetcode191 338 461

n & -n

算法基础--位运算_第5张图片

n & (n-1)  把最右侧的1变成0

算法基础--位运算_第6张图片

4、^的运算律

LeetCode  136  260

算法基础--位运算_第7张图片

二、相关题目

1、判断字符是否唯一

unique位图思想

1、力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

算法基础--位运算_第8张图片

2、丢失的数字

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

算法基础--位运算_第9张图片

3、两整数之和

算法基础--位运算_第10张图片

利用异或,不进位加法,得到不进位的数

然后利用&并左移1位得到进位的数

重复该过程,直到一个变成0,另一个自然就是sum。

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

4、只出现一次的数字②

算法基础--位运算_第11张图片

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

算法基础--位运算_第12张图片

5、消失的两个数字

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

算法基础--位运算_第13张图片

算法基础--位运算_第14张图片

你可能感兴趣的:(基础算法,算法)