[LeetCode] 342. 4的幂

4^x 其实可以等效于 22x,所以我们仍然是通过位运算求这个2y是多少,然后判断这个y是不是2的倍数就可以了。

class Solution {
    public boolean isPowerOfFour(int n) {
        if (n == 1) return true;
        int cnt = 0;
        int k = 0;

        while (n > 0) {
            if ((n & 1) == 1) {
                k++;
            }
            cnt++;
            n >>= 1;
        }

        return (k == 1) && (cnt % 2 == 1);
    }
}
posted @ 2021-06-06 23:46  ACBingo  阅读(25)  评论(0编辑  收藏  举报