题解 | #丑数#

丑数

https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b

代码实现

class Solution {
public:
    int GetUglyNumber_Solution(int index) {
        if(index == 0) return 0;
        //开辟三个队列
        queue<int> q2;
        queue<int> q3;
        queue<int> q5;
        vector<int> arr;
        int numNew = 1;
        arr.push_back(numNew);

        while(arr.size() < index)
        {    
            q2.push(numNew * 2);
            q3.push(numNew * 3);
            q5.push(numNew * 5);
            numNew = min(q2.front(), min(q3.front(), q5.front()));
            if(q2.front() == numNew) q2.pop();
            if(q3.front() == numNew) q3.pop();
            if(q5.front() == numNew) q5.pop();

            //最小丑数入丑数队列
            arr.push_back(numNew);
        }
        return arr[arr.size() - 1];
    }
};
全部评论

相关推荐

08-23 21:29
已编辑
吉林师范大学 硬件开发
牛马人的牛马人生:前期急啥 前期神仙打架高端局ssp的高级大offer 都是佬们的战争
点赞 评论 收藏
分享
09-02 11:14
已编辑
四川大学 Java
吴offer选手:这种面试是最烦的,学不到东西,然后还被挂的莫名其妙。之前看到一种说法是面试官如果不想要你了,就会问一些很简单的问题,防止你举报他
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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