LintCode_O(1)检测2的幂次

来源:互联网 发布:淘宝首页前端代码 编辑:程序博客网 时间:2024/05/29 17:01

问题描述:

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

样例:n=4,返回 true;n=5,返回 false.

注意:O(1) 时间复杂度
算法思想:最关键的判断是否2的幂次的只有一句:(n&(n-1))==0是否成立;

    public static boolean checkPowerOf2(int n){
        
        boolean flag=false;
        
        if(n>0&&(n&(n-1))==0){
            flag=true;
        }
        
        return flag;
        
    }

0 0