题解 | #丑数#
丑数
http://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b
function GetUglyNumber_Solution(index)
{
// write code here
//0-6直接返回index作为结果
//设置三个指针,分别指向2、3、5队列,取出最小的值压入,这个值不会再压入,所以该队列的指针右移
//当最小值同时有两个时,同时取出,两个指针都右移
if(index<7) {return index}
let p2=0,p3=0,p5=0, newNum = 1;
let arr = [1]
//当丑数的数组长度达到了index时终止循环
while(arr.length<index){
newNum = Math.min(arr[p2]*2,arr[p3]*3,arr[p5]*5)
if (newNum==arr[p2]*2){p2++}
if (newNum==arr[p3]*3){p3++}
if (newNum==arr[p5]*5){p5++}
arr.push(newNum)
}
return newNum
}
module.exports = {
GetUglyNumber_Solution : GetUglyNumber_Solution
};