2 的幂
2 的幂
题目描述(来源于LeetCode)
给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方
代码实现
初期思路
1 | class Solution: |
复杂度分析
- 时间复杂度:
- 空间复杂度:
进阶
使用位运算:2的幂在二进制表示中只有一个1,其余位都是0。因此,n & (n - 1) 操作会将唯一的1变为0,如果结果为0,则 n 是2的幂
1 | class Solution: |
复杂度分析
- 时间复杂度:
- 空间复杂度:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 笺札!









