ugly number
count=1 lis=[1] i=0 def push(i,num): global lis global count j=i end=len(lis)-1 while j<=end: if lis[j]>num: break elif lis[j]==num: return j=j+1 if(j==end+1): lis.append(num) else : lis.insert(j,num) count+=1 while count<=4000: a=lis[i]*2 b=lis[i]*3 c=lis[i]*5 push(i,a) push(i,b) push(i,c) i+=1 print(lis[1499])
利用list的insert函数,可以在特定位置插入元素。不用堆也可以优化一些(虽然比较慢)
浙公网安备 33010602011771号