把只包含質因子2、3和5的數稱作醜數(ugly number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。
題目鏈結
因為新增的大的醜數一定小的醜數乘以2,3,5得到的值最小的乙個。
# -*- coding:utf-8 -*-
class
solution
:def
getuglynumber_solution
(self, index)
:# write code here
if index <=0:
return
0 res =[1
for i in
range
(index)
] i_2,i_3,i_5 =0,
0,0for i in
range(1
,index):if
2*res[i_2]
<=
3*res[i_3]
and2
*res[i_2]
<=
5*res[i_5]
: res[i]=2
*res[i_2]
i_2 +=
1elif
3*res[i_3]
<=
2*res[i_2]
and3
*res[i_3]
<=
5*res[i_5]
: res[i]=3
*res[i_3]
i_3 +=
1else
: res[i]=5
*res[i_5]
i_5 +=1if
3*res[i_3]
==res[i]
:i_3 +=1if
5*res[i_5]
== res[i]
: i_5 +=
1return res[index-
1]
python 醜數 劍指offer
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。思路 最直接的暴力解法是從1開始依次判斷數字是否為醜數,直到達到要求的醜數個數。當然這種方法肯定是會tle的,所以我們分析...
劍指offer 醜數 python
題目 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。class solution def getuglynumber solution self,index write...
劍指offer 醜數
把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。分析 參考程式設計師面試金典 偽 如下 1 初始化array和佇列 q2 q3 q5 2 將1插入array 3 分別將1 2...