一、暴力法
從1開始對每乙個數進行判斷,是否可以連除2,3,5得到1,效率比較低
class
solution
}return number;
}bool
isugly
(int n)
};
二、以空間換取時間的做法
思路:把每乙個醜數都列出來。
醜數肯定是2,3,5的倍數,所以每乙個位置都可以乘2,3,5,找到比目前醜數大的醜數(因為比目前最大的醜數小的醜數已經出現在了容器中),然後在這三個比目前醜數大的醜數中找到最小的那個即為下乙個醜數
class
solution
return uglynum[n-1]
;}};
面試題49 醜數
題意 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。思路 暴力每個數,判斷是不是醜數,直到找到第n個醜數。這個有點慢,不考慮 不能暴力所有數,我們考慮暴力醜數。假設陣列...
面試題49 醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。考察點 時間複雜度的理解 需求了解。思路 這道題最簡單的想法是寫乙個判斷是不是醜數的函式,然後從小到大以此遍歷,直到找到第...
面試題49 醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。解題思路 上 c 香 法一 暴力列舉法 超時 define maxn 10010 define maxnn 0xfffff...