题解 | #丑数#

丑数

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

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-29 17:30
点赞 评论 收藏
分享
zhch7:建议9✌️把学历加黑加粗,如果实在offer可能是觉得佬不会去
投了多少份简历才上岸
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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