题解 | #丑数#

丑数

https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param index int整型 
# @return int整型
#思想2**x 3**y 5**z
class Solution:
    def GetUglyNumber_Solution(self , index: int) -> int:
        # write code here
        if index == 0:
            return 0
        res = [1] # 目标数组
        a,b,c = 0,0,0 # 初始情况下三指针都指向第一个;a指针专注*2,b专注*3,c专注*5
        while len(res) < index: # 当数组没到达n长度时
            cur = min(res[a]*2, res[b]*3, res[c]*5) # 当前取三个指针所能生成的最小值
            if cur not in res: #【注】另法,就是不管生成重复与否,都把它放进数组,最后返回数组最后一位即可
                res.append(cur) # 如果没有生成过这个数,放进去;比如6=2*3=3*2这就重复了
            if cur == res[a]*2: # 如果是*2生成的这个数,那么a指针向后移动一位
                a += 1
            elif cur == res[b]*3:# b,c同理
                b += 1
            else:
                c += 1
        return res[index-1] # 对应位置上就是第几位的丑数

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务