面試題38 醜數

2021-07-09 06:10:50 字數 627 閱讀 7177

題目:

我們把只包含因子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個醜數。這個有點慢,不考慮 不能暴力所有數,我們考慮暴力醜數。假設陣列...