Skip to main content

Power Of Two - LeetCode Daily Challenge

Prerna Sharma

Problem Statement

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.

Follow-up: Could you solve it without loops/recursion?

Example 1

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

Example 2

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

Try here before watching the video.

Video Solution

Java Code

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

C++ Code

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

Python Code

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        if n <= 0:
            return False
        return (n & (n - 1)) == 0

Javascript Code

var isPowerOfTwo = function(n) {
    if(n <= 0) {
        return false;
    }
    return (n & (n - 1)) == 0;
};

Go Code

func isPowerOfTwo(n int) bool {
    if n <= 0 {
        return false;
    }
    return (n & (n - 1)) == 0;
}

Complexity Analysis

Time Complexity: O(1)
Space Complexity: O(1)