美文网首页
231. Power of Two (E)

231. Power of Two (E)

作者: Ysgc | 来源:发表于2020-11-26 09:46 被阅读0次

    Given an integer n, return true if it is a power of two. Otherwise, return false.

    An integer n is a power of two, if there exists an integer x such that n == 2x.

    Example 1:

    Input: n = 1
    Output: true
    Explanation: 20 = 1
    Example 2:

    Input: n = 16
    Output: true
    Explanation: 24 = 16
    Example 3:

    Input: n = 3
    Output: false
    Example 4:

    Input: n = 4
    Output: true
    Example 5:

    Input: n = 5
    Output: false

    Constraints:

    -231 <= n <= 231 - 1


    我的答案:

    class Solution {
    public:
        bool isPowerOfTwo(int n) {
            if (n <= 0) return false;
            
            while (n > 1) {
                if (n%2 != 0) return false;
                n = n/2;
            }
            
            return true;
        }
    };
    

    Runtime: 4 ms, faster than 34.61% of C++ online submissions for Power of Two.
    Memory Usage: 6.2 MB, less than 38.78% of C++ online submissions for Power of Two.

    通过了,效率有点低

    看答案里面有人用bitwise来做

    
    class Solution {
    public:
        bool isPowerOfTwo(int n) {
            if(n<=0)
                return false;
            if((n & (n-1)) == 0)
                return true;
            else
                return false;
        }
    };
    

    2^n => 100000...000
    2^n-1 => 011111...111

    相关文章

      网友评论

          本文标题:231. Power of Two (E)

          本文链接:https://www.haomeiwen.com/subject/itriiktx.html