暴力如下:
class Solution:
"""
@param n: An integer
@return: return a integer as description.
"""
def istrue(self,x):
a=[i for i in range(3)]
a[0],a[1],a[2]=2,3,5
flag=1
while x!=1:
flag1=0
for i in range(2,-1,-1):
if x%a[i]==0:
x/=a[i]
flag1=1
break
if flag1==0:
flag=0
break
return flag
def nthUglyNumber(self, n):
# write your code here
index=0
answer=0
for i in range(1,100000*n):
if self.istrue(i)==1:
index+=1
answer=i
if index==n:
break
return answer
这样是肯定过不了的,必然T
用heapq模板中的heappush heappop
from heapq import heappop,heappush
class Solution:
def nthUglyNumber(self, n):
heap=[1]
x=[2,3,5]
y=[]
for _ in range(n):
num=heappop(heap)
y=[i*num for i in x]
for i in y:
if i not in heap:
heappush(heap,i)
return num