丑数

丑数_牛客网

https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b?tpId=13&tqId=11186&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

# -*- coding:utf-8 -*-
class Solution:
    def GetUglyNumber_Solution(self, index):
        # write code here
        if index<7:
            return index
        p1,p2,p3 = 0,0,0
        array = [1]
        while len(array)<index:
            newnum = min(array[p1]*2,array[p2]*3,array[p3]*5)
            array.append(newnum)
            if newnum == array[p1]*2:
                p1 += 1
            if newnum == array[p2]*3:
                p2 += 1
            if newnum == array[p3]*5:
                p3 +=1
        return array[-1]
在索引值小于7的时候,前6个丑数为1,2,3,4,5,6,我们设置起始数组为[1],后面的数依次是对于已知的丑数序列,后面的丑数一定是已知序列中的数字乘以2/3/5得到的。对当前序列中的数字乘2/3/5得到的数字中最小的数字才能放入序列。
全部评论

相关推荐

one_t:硕还是本?什么岗
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务