LeetCode 263. 丑数
题目描述
✅ 263. 丑数
思路分析
解法一:不断除以 2/3/5(推荐)
核心思路:
- 丑数只包含质因子 2、3、5。
- 不断用 2、3、5 去除 n,最后若结果为 1,则是丑数。
复杂度分析:
- 时间复杂度:O(log n),不断除法的次数与 n 的因子数量相关。
- 空间复杂度:O(1)。
class Solution {
public boolean isUgly(int n) {
if (n <= 0) {
return false;
}
int[] factors = {2, 3, 5};
for (int f : factors) {
while (n % f == 0) {
n /= f;
}
}
return n == 1;
}
}
func isUgly(n int) bool {
if n <= 0 {
return false
}
factors := []int{2, 3, 5}
for _, f := range factors {
for n%f == 0 {
n /= f
}
}
return n == 1
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 263. 丑数 | 简单 | 数学 |
| 264. 丑数 II | 中等 | DP/指针 |
| 313. 超级丑数 | 中等 | DP/指针 |
| 202. 快乐数 | 简单 | 数学/哈希 |
| 231. 2 的幂 | 简单 | 位运算 |
| 342. 4 的幂 | 简单 | 位运算 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!