设计一个算法,找出只含素因子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];
}