题目
我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。求从小到大的顺序的第 1500个丑数。
优化方法如下:
对于该方法的理解如下图:
对应的代码如下:
class Solution:
def target(self, index):
if index < 0:
return 0
if index == 1 :
return 1
list = [1]
M2 = 0
M3 = 0
M5 = 0
for i in range(1, index):
if list[M2] * 2 <= list[i-1] :
M2 += 1
if list[M3] * 3 <= list[i-1] :
M3 += 1
if list[M5] * 5 <= list[i-1]:
M5 += 1
a = min(list[M2] * 2, list[M3] * 3, list[M5] * 5)
list.append(a)
return list[-1]
a = Solution()
b = a.target(1500)
print(b)