264 丑数II
编写一个程序,找出第 n 个丑数。
丑数就是质因数只包含 2, 3, 5 的正整数。
示例:
输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
解法
- 动态规划
class Solution:
def nthUglyNumber(self, num: int) -> int:
dp = [0]*num
dp[0] = 1
l2,l3,l5 = 0,0,0
for i in range(1,num):
dp[i] = min(2*dp[l2],3*dp[l3],5*dp[l5])
if dp[i] == 2*dp[l2]:
l2 += 1
if dp[i] == 3*dp[l3]:
l3 += 1
if dp[i] == 5*dp[l5]:
l5 += 1
return dp[-1]