给你一个整数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:
value = [1]
i, j , k = 0, 0, 0
for _ in range(n-1):
v1 = value[i] * 2
v2 = value[j] * 3
v3 = value[k] * 5
min_value = min(v1, v2, v3)
value.append(min_value)
if v1 == min_value:
i += 1
if v2 == min_value:
j += 1
if v3 == min_value:
k += 1
return value[-1]
留言