把只包含質因子2、3和5的數稱作醜數(ugly number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。
class solution {
public:
int getuglynumber_solution(int index) {
if(index<=0)return 0;
setuglyset; //int會超範圍
uglyset.insert(1);
for(int i=1;i每個醜數都是若干個2、3、5的相乘,每個醜數(除了最開始的1)都可以由某些醜數生成
演算法思路:建立乙個集合放置醜數,剛開始放1,拿集合中最小的醜數分別乘2、3、5生成三個醜數,刪除集合中最小的醜數。
重複n次這樣的操作後,集合中的最小值就是第n+1個醜數
醜數的求解
題目 我們把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第1500個醜數。思路 如果能夠根據已經計算好的醜數,計算出下乙個醜數就可以避免這種情況,實現從醜數到醜數的高效演算法,根據定義...
leetcode 263 醜數(醜數II)
給了我們乙個醜數的概念,真是為了考驗我們什麼手段都能使出來。首先說一下第乙個題目,判斷乙個數是不是醜數,就是不斷地去除5 除3 除2就行了,當然除之前看看餘數是不是0,否則的話說明已經不能被這三個數整除了,直接結束 public boolean isugly int num return flag ...
刷題 醜數提取及醜數判斷
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。根據醜數的定義,我們知道醜數一定是由2 3 5乘積得到,可表示成如下公式 我們預設1是第乙個醜數,初始醜數序列為1,從1開...