劍指offer33 醜數

2021-09-09 07:06:22 字數 796 閱讀 8985

題目描述

把只包含質因子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...