丑数
# -*- coding:utf-8 -*-
class Solution:
def GetUglyNumber_Solution(self, index):
# write code here
if index == 0:
return 0
ugly_num = [1]
count = 1
min2, min3, min5 = 0, 0, 0
while count < index:
minnum = min(ugly_num[min2]*2, ugly_num[min3]*3, ugly_num[min5]*5)
ugly_num.append(minnum)
while ugly_num[min2]*2 <= minnum:
min2 +=1
while ugly_num[min3]*3 <= minnum:
min3 +=1
while ugly_num[min5]*5 <= minnum:
min5 +=1
count += 1
return ugly_num[-1]
或
# -*- coding:utf-8 -*-
class Solution:
def GetUglyNumber_Solution(self, index):
# write code here
if index == 0:
return 0
ugly_num = [1]
count = 1
min2, min3, min5 = 0, 0, 0
while count < index:
minnum = min(ugly_num[min2]*2, ugly_num[min3]*3, ugly_num[min5]*5)
ugly_num.append(minnum)
if minnum == ugly_num[min2]*2:
min2 +=1
if minnum == ugly_num[min3]*3:
min3 +=1
if minnum == ugly_num[min5]*5:
min5 +=1
count += 1
return ugly_num[-1]
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param index int整型
# @return int整型
#
class Solution:
def GetUglyNumber_Solution(self , index: int) -> int:
# write code here
if index == 0:
return 0
ugly_list = [1]
min2, min3, min5 = 0, 0, 0
while len(ugly_list) < index:
addmin = min(ugly_list[min2]*2, ugly_list[min3]*3, ugly_list[min5]*5)
ugly_list.append(addmin)
if ugly_list[min2]*2 == addmin:
min2 += 1
if ugly_list[min3]*3 == addmin:
min3 += 1
if ugly_list[min5]*5 == addmin:
min5 += 1
return ugly_list[-1]