201. 数字范围按位与
分析
- 按位与的性质
- 任何数字与
0进行按位与,结果都是0,即x & 0 = 0 - 相邻数字的按位与会减少
1位的1,例如:
- 任何数字与
|
|
计算 5 & 6 & 7 = 4,可以看到最右侧的 1 被清除了
- 观察区间变化
- 若
left和right的二进制前缀相同,则它们的按位与结果保留这个前缀,后面的位全部补0 - 若
left和right的某一位出现了不同(即0->1或1->0),则从该位及其更低位的按位与结果必然为0
- 若
时间复杂度
由于整数的二进制表示最多 32 位,我们最多遍历 32 次,因此时间复杂度为 O(1)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|