题目
给你一个整数 n
,请你判断该整数是否是 2 的幂次方。如果是,返回 true
;否则,返回 false
。
如果存在一个整数 x
使得 n == 2^x
,则认为 n
是 2 的幂次方。
示例1:
1 | 输入: 1 |
示例2:
1 | 输入: 16 |
示例3:
1 | 输入: 218 |
示例4:
1 | 输入:n = 4 |
示例5:
1 | 输入:n = 5 |
提示:
-2^31 <= n <= 2^31 - 1
解法
解法一:
2的幂次数值转换为二进制之后,只有一个1,统计每个数字二进制的1的个数就行。
Java
1 | class Solution { |
解法二:
统计数值里面1的个数,2的幂的话,1肯定在最高位,并且只有一个。
Java
1 | public boolean isPowerOfTwo(int n) { |