lintcode 4 醜數 II(優先佇列)

2021-08-02 06:15:49 字數 700 閱讀 5627

設計乙個演算法,找出只含素因子235的第 n 大的數。

符合條件的數如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12...

看到題的第乙個想法一直向下列舉 直到找到第n個數

我的思路是 :每乙個醜數都是由乙個醜數乘2乘3乘5得來的,可以把第乙個醜數也就是1放進優先佇列中,然後進行n次操作每次取出隊頭然後把隊頭

的二倍,三倍,五倍入隊,注意的是佇列中可能會有重複的數所以要判斷是不是重複的數

codelint提交**如下

class solution 

last = t;

s.push(t*2);

s.push(t*5);

s.push(t*3);

} while(t == last)

return t;

}};

c++除錯**如下

#include #include #include using namespace std;

int main()

last = t;

s.push(t*2);

s.push(t*5);

s.push(t*3);

} while(t == last)

cout<

Lint Code 4 用C 實現查詢醜數

這是lintcode上的一道題 原題位址 醜數 是素因子只有2,3,5的數,有的人說這句話不好理解,其實意思就是乙個數有很多因子,這些因子中如果有素數,只能是2,3,5,舉個例子,14有因子7,7是14的素因子,不在2,3,5的範圍內,故14不是醜數。思路就不說了,網上都是說醜數是之前的醜數的2,3...

JS的lintcode學習筆記(4) 醜數

問題描述 設計乙個演算法,找出只含素因子2,3,5的第 n 小的數。問題說明 只包含因子2,3,5的正整數被稱作醜數,比如4,10,12都是醜數,而7,23,111則不是醜數,另外1也是醜數。問題分析 這裡提供兩種解題思路 方法一 暴力迴圈。對乙個數分別迴圈除2,3,5,若最後的結果為1即能除盡,計...

leetcode 263 醜數(醜數II)

給了我們乙個醜數的概念,真是為了考驗我們什麼手段都能使出來。首先說一下第乙個題目,判斷乙個數是不是醜數,就是不斷地去除5 除3 除2就行了,當然除之前看看餘數是不是0,否則的話說明已經不能被這三個數整除了,直接結束 public boolean isugly int num return flag ...