题解 | #丑数#

丑数

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param index int整型 
# @return int整型
#
class Solution:
    def GetUglyNumber_Solution(self , index: int) -> int:
        if not index:
            return 0
 
        # 结果列表
        res_list = [1]
 
        # 思路:不断添加最小的进来:三个候选者(2,3,5)分别乘上列表的(i, j, k)位置
        # 初始位置都是0,谁最小,谁添加,并更新对应的i, j, k
        i, j, k = 0, 0, 0
 
        while index - 1:
            a, b, c = 2 * res_list[i], 3 * res_list[j], 5 * res_list[k]
            # 添加最小的
            res_list.append(min(a, b, c))
            # 谁最小,谁更新
            if a == min(a, b, c):
                i += 1
            if b == min(a, b, c):
                j += 1
            if c == min(a, b, c):
                k += 1
            index -= 1
             
        # 返回表尾即可
        return res_list[-1]

全部评论

相关推荐

11-13 20:32
门头沟学院 Java
面向未来编程code:我没看到他咋急,他不就问你个问题。。。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务