LeetCode 231. 2 的幂

题目描述

231. 2 的幂

思路分析

解法一:位运算(推荐)

核心思路

  • 2 的幂二进制只有一个 1。
  • 对于正数 n,若 n & (n - 1) == 0 则是 2 的幂。


复杂度分析

  • 时间复杂度:O(1),整数位数固定。
  • 空间复杂度:O(1),仅使用常数额外空间。
class Solution {
    public boolean isPowerOfTwo(int n) {
        if (n <= 0) {
            return false;
        }

        // 只有一个 1 的数满足该条件
        return (n & (n - 1)) == 0;
    }
}
func isPowerOfTwo(n int) bool {
    if n <= 0 {
        return false
    }

    // 只有一个 1 的数满足该条件
    return n&(n-1) == 0
}

相似题目

题目 难度 考察点
326. 3 的幂 简单 数学
342. 4 的幂 简单 位运算
191. 位1的个数 简单 位运算
190. 颠倒二进制位 简单 位运算
338. 比特位计数 中等 DP、位运算
本文作者:
本文链接: https://hgnulb.github.io/blog/2024/61142860
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!