美文网首页
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