题目:
编写一个程序,找出第 n
个丑数。
丑数就是只包含质因数 2, 3, 5
的正整数。
示例:
输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12
是前 10 个丑数。
说明:
1
是丑数。n
不超过1690。
代码:
class Solution:
def nthUglyNumber(self, n: int) -> int:
if n<= 0:
return 0
res = [0]*n
res[0]=1
nextindex = 1
p2 = 0
p3 = 0
p5 = 0
while nextindex < n:
minnum = min(res[p2]*2,res[p3]*3,res[p5]*5)
res[nextindex] = minnum
while res[p2]*2 <= res[nextindex]:
p2 +=1
while res[p3]*3 <= res[nextindex]:
p3 +=1
while res[p5]*5 <= res[nextindex]:
p5 +=1
nextindex += 1
return res[n-1]