leetcode-231-easy

Power Of Two

思路一: 观察 2 的 n 次方的二进制,都只有一位 1 bit,遍历即可

public boolean isPowerOfTwo(int n) {
    if (n <= 0) return false;

    int count = 0;
    for (int i = 0; i < 32; i++) {
        if ((n & 1) == 1) {
            count++;
        }
        if (count >= 2) return false;

        n >>= 1;
    }

    return true;
}

思路二: n & (n - 1) == 0,位运算技巧

思路三: 由于答案限制了范围,32 位整形最大是 2^30,用这个来取余,判断是否为零,思路很巧妙

posted @ 2022-10-23 08:35  iyiluo  阅读(22)  评论(0)    收藏  举报