丑数 II

2018-11-25  本文已影响0人  AustinWeii

设计一个算法,找出只含素因子2,3,5 的第 n 小的数。

符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12...

我们可以认为1也是一个丑数]

样例
如果n = 9, 返回 10

挑战
要求时间复杂度为O(nlogn)或者O(n)

 * @param n: An integer
 * @return: the nth prime number as description.
 */
const nthUglyNumber = function (n) {
    var t=[1];
    while(t.length<n){
        var m=t[t.length-1];
        var q=m*2;
        for(var i=0;i<t.length;i++){
            if (t[i]*2>m) {
               q=Math.min(t[i]*2,q);
            } 
        }
        for(i=0;i<t.length;i++){
            if (t[i]*3>m) {
               q=Math.min(t[i]*3,q);
            } 
        }
        for(i=0;i<t.length;i++){
            if (t[i]*5>m) {
               q=Math.min(t[i]*5,q);
            } 
        }
        t.push(q);
    }
    return t[n-1];
}

上一篇 下一篇

猜你喜欢

热点阅读