题解 | #丑数#

丑数

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
};
全部评论

相关推荐

09-22 19:21
南京大学 Java
牛客96763241...:刚刚想说才投十几个,养生呢,结果一看是南大本硕✌️,肯定没有问题的
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
迷茫的大四🐶:你这个拿去投央国企吧,投私企包过不了的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务