題目:
我們把只包含因子2,3和5的數稱作醜數。求按從小到大的順序的第1500個醜數。例如6,8是醜數,14不是醜數。習慣上我們把1當作第乙個醜數。
邊界條件及異常:
index小於等於0。
思路:下乙個醜數肯定是前面某乙個醜數uglynumbers[mult2index]乘以2,某乙個醜數uglynumbers[mult3index]乘以3,某乙個醜數uglynumbers[mult5index]乘以5的最小的值。
所以需要將前面的醜數全部存下來。
時間複雜度:o(n)
空間複雜度:o(n)
#include #include #include #include #include #include #include //for hashtable
#include #include #include using namespace std;
int minofthree(int num1, int num2, int num3)
int getuglynumber(int index)
return uglynumbers[nextindex - 1];
}int main()
面試題 醜數
我們把只包含因子2 3和5的數稱為醜數 ugly number 求按從大到小的順序的第1500個醜數。例如,6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當作第1個醜數。思路 先來乙個由定義得到的演算法,再看看有沒有優化空間。bool isugly int number while n...
面試題34 醜數
題目 我們把只包含因子2,3,和5的數稱作醜數 ugly number 求按從小到大的順序的第1500個醜數。例如6,8都是醜數,但14不是,因為它包含因子7,習慣上我們把1當做第一醜數。思路 1,傳統方法,乙個數乙個數判斷 2,第一種方法效率太低,主要是不是醜數也需要花費時間進行判斷。我們可以把醜...
面試題49 醜數
題意 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。思路 暴力每個數,判斷是不是醜數,直到找到第n個醜數。這個有點慢,不考慮 不能暴力所有數,我們考慮暴力醜數。假設陣列...