1. 程式人生 > >劍指offer 醜數 python

劍指offer 醜數 python

題目描述

把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。

樣例

1
1
2
2
0
0

想法:
迴圈每次求乘以2,3,5後最小的數,加入到醜數列表中,最後輸出最後一個醜數即可。

class Solution:
    def GetUglyNumber_Solution(self, index):
        res = [1]
        index2 = index3 = index5 = 0
        for
i in range(1, index): u2 = res[index2] * 2 u3 = res[index3] * 3 u5 = res[index5] * 5 res.append(min(u2, min(u3, u5))) if res[i]/2 == res[index2]: index2 += 1 if res[i]/3 == res[index3]: index3 += 1
if res[i]/5 == res[index5]: index5 += 1 return res.pop()

最後

刷過的LeetCode或劍指offer原始碼放在Github上了,希望喜歡或者覺得有用的朋友點個star或者follow。
有任何問題可以在下面評論或者通過私信或聯絡方式找我。
聯絡方式
QQ:791034063
Wechat:liuyuhang791034063
CSDN:https://blog.csdn.net/Sun_White_Boy
Github:https://github.com/liuyuhang791034063