Leetcode 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`. Example 1: Input: n = 1, Output: true - 2^0 = 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 == 2x
.
Example 1:
Input: n = 1
Output: true
- 2^0 = 1
Example 2:
Input: n = 16
Output: true
- 2^4 = 16
Example 3:
Input: n = 3
Output: false
Constraints:
-231 <= n <= 231 - 1
Follow up
- Could you solve it without loops/recursion?
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
/**
* Iteration
* Time Complexity: BigO(log n)
* Space Complexity: BigO(1)
*/
public boolean isPowerOfTwo(int n) {
if (n == 0)
return false;
while (n != 1) {
if (n % 2 != 0)
return false;
n = n / 2;
}
return true;
}
}
This post is licensed under CC BY 4.0 by the author.