def nthSuperUglyNumber(self, n, primes):
"""
:type n: int
:type primes: List[int]
:rtype: int
"""
from heapq import merge
uglies = [1]
def gen(prime): # Here "gen" is a iterator
for ugly in uglies:
yield ugly * prime
merged = heapq.merge(*map(gen, primes)) # Here "merge" is a generator
while len(uglies) < n:
ugly = next(merged)
if ugly != uglies[-1]:
uglies.append(ugly)
return uglies[-1]
评论列表
文章目录