刷演算法 醜數

2021-09-13 11:54:43 字數 412 閱讀 8099

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

首先從題目可以知道,對於乙個醜數p,p*2、p*3、p*5都是醜數。

那麼從第乙個醜數1開始,1*2、1*3、1*5都是醜數,最小的2是第二個醜數;

對於第二個醜數2來說,又多出來三個需要被比較的數字,即2*2、2*3、2*5,再加上第一輪挑剩下的1*3、1*5,但是這裡顯然可以看出來,1*3<2*3,1*5<2*5,所以其實只需要比較2*2、1*3、1*5即可。

......

按照這樣的節奏比下去即可。

function getuglynumber_solution(index)

return res[index-1];

刷題 醜數提取及醜數判斷

把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。根據醜數的定義,我們知道醜數一定是由2 3 5乘積得到,可表示成如下公式 我們預設1是第乙個醜數,初始醜數序列為1,從1開...

LeetCode刷題 醜數

編寫乙個程式判斷給定的數是否為醜數。醜數就是只包含質因數 2,3,5 的正整數。示例 1 輸入 6 輸出 true 解釋 6 2 3 示例 2 輸入 8 輸出 true 解釋 8 2 2 2 示例 3 輸入 14 輸出 false 解釋 14 不是醜數,因為它包含了另外乙個質因數 7。說明 1 是醜...

LeetCode刷題 醜數

編寫乙個程式判斷給定的數是否為醜數。醜數就是只包含質因數 2,3,5 的正整數。示例 1 輸入 6 輸出 true 解釋 6 2 3 示例 2 輸入 8 輸出 true 解釋 8 2 2 2 示例 3 輸入 14 輸出 false 解釋 14 不是醜數,因為它包含了另外乙個質因數 7。說明 1 是醜...