丑数 II(LeetCode)

题目

给你一个整数 n ,请你找出并返回第 n丑数

丑数 就是质因子只包含 235 的正整数。

解题

python 复制代码
def nthUglyNumber(n: int) -> int:
    # 初始化 dp 数组
    dp = [0] * n
    dp[0] = 1

    # 初始化三个指针
    p2 = p3 = p5 = 0

    for i in range(1, n):
        # 计算当前三个候选丑数
        next_ugly = min(dp[p2] * 2, dp[p3] * 3, dp[p5] * 5)

        # 更新 dp 数组
        dp[i] = next_ugly

        # 移动指针
        if next_ugly == dp[p2] * 2:
            p2 += 1
        if next_ugly == dp[p3] * 3:
            p3 += 1
        if next_ugly == dp[p5] * 5:
            p5 += 1

    return dp[n - 1]


# 测试代码
n = 10
print(f"The {n}th ugly number is: {nthUglyNumber(n)}")

The 10th ugly number is: 12

相关推荐
啊阿狸不会拉杆几秒前
《计算机视觉:模型、学习和推理》第 4 章-拟合概率模型
人工智能·python·学习·算法·机器学习·计算机视觉·拟合概率模型
ADDDDDD_Trouvaille4 分钟前
2026.2.20——OJ92-94题
c++·算法
七夜zippoe5 分钟前
模拟与存根实战:unittest.mock深度使用指南
linux·服务器·数据库·python·模拟·高级摸您
hansang_IR9 分钟前
【题解】类欧几里得算法
c++·数学·算法·类欧几里得
陈天伟教授9 分钟前
人工智能应用- 人工智能交叉:06.解析蛋白质宇宙
人工智能·神经网络·算法·机器学习·推荐算法
踩坑记录9 分钟前
leetcode hot100 17. 电话号码的字母组合 medium 递归回溯
python
We་ct12 分钟前
LeetCode 114. 二叉树展开为链表:详细解题思路与 TS 实现
前端·数据结构·算法·leetcode·链表·typescript
像素猎人13 分钟前
范围for语法(除for循环/while循环/do...while循环的第四种循环)
数据结构·算法
17 分钟前
2.20进制转化,表达式求值,删除字符
开发语言·c++·算法
追随者永远是胜利者20 分钟前
(LeetCode-Hot100)461. 汉明距离
java·算法·leetcode·职场和发展·go