231. Power of Two

1. Description

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 == $2^x$.

2. Example

Example 1

Input: n = 1
Output: true
Explanation: 2$^{0}$ = 1

Example 2

Input: n = 16
Output: true
Explanation: 2$^{4}$ = 16

Example 3

Input: n = 3
Output: false

Example 4

Input: n = 4
Output: true

Example 5

Input: n = 5
Output: false

3. Constraints

-2$^{31}$ <= n <= 2$^{31}$ - 1

4. Solutions

Bit Manipulation

Time complexity: O(1)
Space complexity: O(1)

class Solution
{
public:
    // bool isPowerOfTwo(int n)
    bool isPowerOfTwo(int num)
    {
        if(num == 0) return false;

        while(true)
        {
            if(num & 1)
            {
                return ((num >> 1) == 0);
            }
            else
            {
                num >>= 1;
            }
        }
    }
};
comments powered by Disqus