LintcodeO(1)时间检测2的幂次

来源:互联网 发布:云南山歌软件下载 编辑:程序博客网 时间:2024/06/05 13:40

O(1)时间检测2的幂次 

用 O(1) 时间检测整数 n 是否是 2 的幂次。

样例

n=4,返回 true;

n=5,返回 false.

注意:判断是否为2的幂次的方法是n&(n-1),因为2的幂次的二进制表示为1后面接很多零,而减去1后为0后面接很多1,按位与后就全为0了。

public class Solution {
    /*
     * @param n: An integer
     * @return: True or false
     */
    public boolean checkPowerOf2(int n) {
        boolean a=false;
        // write your code here
        if(n>0&&n&(n-1)==0){
            a=true;
        }
        return a;
    }
}

原创粉丝点击