题目描述
我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第n个丑数。
示例:
| 1 | 输入: n = 10 | 
说明
- 1是丑数
- n不超过- 1690
思路
- 状态定义:- 设动态规划列表dp,dp[i]代表第i+1个丑数。
 
- 设动态规划列表
- 转移方程:- 当索引a,b,c满足一下条件时,dp[i]为三种情况的最小值。
- 每轮计算dp[i]后,需要更新索引a,b,c的值,使其始终满足方程条件,以便下轮计算。实现方法:分别独立判断。
- dp[a]*2 > dp[i-1] >= dp[a-1]*2
- dp[b]*3 > dp[i-1] >= dp[b-1]*3
- dp[c]*5 > dp[i-1] >= dp[c-1]*5
 
- 当索引
- dp[i] = min(dp[a]*2,dp[b]*3,dp[c]*5)
- 初始状态;- dp[0]=1,即第一个丑数为- 1。
 
- 返回值:- dp[n-1],即返回第- n个丑数。
 
代码
| 1 | class Solution{ | 
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/chou-shu-lcof/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
