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

My Accepted Solution

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