1. 程式人生 > 其它 >2的冪

2的冪

技術標籤:LeetCodejavaleetcode演算法

一、需求

  • 給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。

示例1:

輸入: 1
輸出: true
解釋: 20= 1

二、位運算

2.1 思路分析

  1. 該題屬於找規律型別,列舉幾個數,比如當n取2^0,2^1,2^2,2^3中的任何一個時,發現其對應的二進位制最高位為1,而n-1二進位制對應的最高位為0,其餘位為1,因此n & n-1必然為0;
  2. n若是2的冪,那麼n比如大於0;

2.2 程式碼實現

class Solution {
    public boolean isPowerOfTwo(int n) {
        //&的優先順序要小於==
        return n > 0 && (n & (n-1)) == 0;
    }
}

三、學習地址

作者:Krahets

連結:https://leetcode-cn.com/problems/power-of-two/solution/power-of-two-er-jin-zhi-ji-jian-by-jyd/