0231 - Power of Two

0231 - Power of Two

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.

Examples

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

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

Input: n = 3 Output: false

Input: n = 4 Output: true

Input: n = 5 Output: false

Constraints

-231 <= n <= 231 - 1

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

Java Solution

class Solution {
    public boolean isPowerOfTwo(int n) {
        if(n==0) return false;
        long x = (long) n;
        // Toggles all 0s to be 1s and vice versa then adds one. Should be the same if it is power of two
        return x == (x & (-x));
    }
}

Last updated