题解 | #丑数#
丑数
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]