题目描述
方法:
1. 遍历判断
class Solution:
def nthUglyNumber(self, n: int) -> int:
res = 1
while n > 1:
res += 1
r = res
while res % 2 == 0:
r = r//2
while res % 3 == 0:
r = r//3
while res % 5 == 0:
r = r//5
if r == 1:
n -= 1
return res
缺点:时间复杂度高
2. 遍历生成
class Solution:
def nthUglyNumber(self, n: int) -> int:
rec = [1]
res = []
mul = [2,3,5]
for j in range(n):
tmp = rec.pop(0)
for i in range(3):
rec.append(mul[i] * tmp)
res.append(tmp)
rec = list(set(rec))
rec.sort()
return res[-1]