設計乙個演算法,找出只含素因子2
,3
,5
的第 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 ...