题解 | #丑数#
丑数
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]
查看9道真题和解析
