给你一个整数 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 通常被视为丑数。
import heapq
class Solution:
def nthUglyNumber(self, n: int) -> int:
heap = []
heapq.heappush(heap, 1)
harshset = []
harshset.append(1)
result = 1
factors = [2,3,5]
for i in range(n):
result = heapq.heappop(heap)
for f in factors:
newNum = result * f
if newNum not in harshset:
heapq.heappush(heap,newNum)
harshset.append(newNum)
return result