2 的幂 (Power of Two)

 

思路:2的幂的特征是>0,且只存在一个1的二进制数,所以通过汉明重量的解法,如果多于1个1了,就不是2的幂

// @Title: 2 的幂 (Power of Two)
// @Author: qisiii
// @Date: 2022-03-10 21:20:22
// @Runtime: 0 ms
// @Memory: 38.4 MB
// @comment: 2的幂的特征是>0,且只存在一个1的二进制数,所以通过汉明重量的解法,如果多于1个1了,就不是2的幂
// @flag: RED
class Solution {
    public boolean isPowerOfTwo(int n) {
        if(n<=0){
            return false;
        }
        int count=0;
        while(n!=0){
            if((n&1)==1){
                count++;
                if(count>1){
                    return false;
                }
            }
            n=n>>>1;
        }
        return true;
    }
}

+++ title = “2 的幂 (Power of Two)” draft = false +++

思路:官方取反互与的解法

// @Title: 2 的幂 (Power of Two)
// @Author: qisiii
// @Date: 2022-03-10 21:24:09
// @Runtime: 0 ms
// @Memory: 38.7 MB
// @comment: 官方取反互与的解法
// @flag: ORANGE
class Solution {
    public boolean isPowerOfTwo(int n) {
        return n>0&&(n&(n-1))==0;
    }
}
Licensed under CC BY-NC-SA 4.0
最后更新于 2024-10-18