題目描述
把只包含質因子2、3和5的數稱作醜數(ugly number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。
這裡講解的很詳細了。
# -*- coding:utf-8 -*-
class
solution
:def
getuglynumber_solution
(self, index)
:# write code here
# 醜數一定是2^x*3^y*5^z,維護三個指標,判斷取了相對較小丑數時各指標所指位置
if index ==0:
return
0 res =[1
] p0, p1, p2 =0,
0,0for i in
range(1
, index)
:min
(res[p0]*2
, res[p1]*3
, res[p2]*5
))if res[i]
== res[p0]*2
: p0 +=
1if res[i]
== res[p1]*3
: p1 +=
1if res[i]
== res[p2]*5
: p2 +=
1return res[-1
]
《劍指offer》33 醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。c 實現 class solution return a index 1 python實現 coding utf 8 cl...
劍指offer 33 醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。通俗易懂的解釋 首先從醜數的定義我們知道,乙個醜數的因子只有2,3,5,那麼醜數p 2 x 3 y 5 z,換句話說乙個醜...
劍指offer 33 醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。時間限制 1秒 空間限制 32768k 熱度指數 209207 本題知識點 陣列 1.窮舉 超時 class soluti...