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函数,可以在特定位置插入元素。不用堆也可以优化一些(虽然比较慢)

posted on 2021-05-23 15:06  鄂江  阅读(46)  评论(0)    收藏  举报