LeetCode 326. 3 的幂
题目描述
思路分析
解法一:循环除法(推荐)
核心思路:
- 3 的幂只能被 3 整除且最终会变为 1。
- 反复执行
n /= 3,若过程中出现不能整除则返回false。- 最终
n == 1则为 3 的幂。
复杂度分析:
- 时间复杂度:O(log n),其中 n 表示输入数值。
- 空间复杂度:O(1),仅使用常数额外空间。
class Solution {
public boolean isPowerOfThree(int n) {
if (n <= 0) {
return false;
}
while (n % 3 == 0) {
n /= 3;
}
return n == 1;
}
}
func isPowerOfThree(n int) bool {
if n <= 0 {
return false
}
for n%3 == 0 {
n /= 3
}
return n == 1
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 231. 2 的幂 | 简单 | 位运算 |
| 342. 4 的幂 | 简单 | 位运算 |
| 263. 丑数 | 简单 | 数学 |
| 367. 有效的完全平方数 | 简单 | 数学 |
| 169. 多数元素 | 简单 | 数学 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!