LintCode_O(1)檢測2的冪次

問題描述:

用 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;
        
    }

發佈了64 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章