P186 2 的幂
算法 18 阅读
信号摘要
难度:Easy · 时长:05:15 · leetcode 231 · lintcode 1314
未对外公开播放权限
点击查看说明
描述
这个题目说的是,给你一个整数 n,你要写一个函数来判断它是否为 2 的幂。
比如说,给你的 n 等于 8,则返回 true:n = 8 = 2^3 => true
再比如说,给你的 n 等于 9,则返回 false:
n = 9 => false
代码
public class AlgoCasts {
// Time: O(log(n)), Space: O(1)
public boolean isPowerOfTwoBruteForce(int n) {
if (n <= 0) return false;
while (n % 2 == 0)
n /= 2;
return n == 1;
}
// Time: O(1), Space: O(1)
public boolean isPowerOfTwoBit(int n) {
return n > 0 && (n & (n - 1)) == 0;
}
}