给你一个整数 n ,请你找出并返回第 n 个 丑数 。
丑数 就是质因子只包含 2、3 和 5 的正整数。
示例 1:
输入:n = 10
输出:12
解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。
示例 2:
输入:n = 1
输出:1
解释:1 通常被视为丑数。
提示:
1 <= n <= 1690
如果从1开始计算:
python
class Solution:
def nthUglyNumber(self, n: int) -> int:
res = [1,1]
n1=1
n2=1
n3=1
for i in range(1,n):
num1 = res[n1] *2
num2 = res[n2] *3
num3 = res[n3] * 5
temp = min(num1, num2, num3)
res.append(temp)
if temp == num1:
n1 = n1 + 1
if temp == num2:
n2 = n2 +1
if temp == num3:
n3 = n3 +1
return res[n]
如果从0开始算
python
class Solution:
def nthUglyNumber(self, n: int) -> int:
res = [1]
n1=0
n2=0
n3=0
for i in range(1,n):
num1 = res[n1] *2
num2 = res[n2] *3
num3 = res[n3] * 5
temp = min(num1, num2, num3)
res.append(temp)
if temp == num1:
n1 = n1 + 1
if temp == num2:
n2 = n2 +1
if temp == num3:
n3 = n3 +1
return res[-1]