231. Power of Two - Easy
Given an integer, write a function to determine if it is a power of two.
Example 1:
Input: 1 Output: true Explanation: 20 = 1
Example 2:
Input: 16 Output: true Explanation: 24 = 16
Example 3:
Input: 218 Output: false
M1: count how many bits are 1s, if # of 1s == 1, return true
time = O(# of bits), space = O(1)
class Solution { public boolean isPowerOfTwo(int n) { return n > 0 && countOnes(n) == 1; } public int countOnes(int n) { int cnt = 0; while(n > 0) { cnt += (n & 1); n >>= 1; } return cnt; } }
M2: directly
time = O(1), space = O(1)
class Solution { public boolean isPowerOfTwo(int n) { return n > 0 && (n & (n - 1)) == 0; } }