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 的幂 简单 位运算
本文作者:
本文链接: https://hgnulb.github.io/blog/2026/98000965
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!