首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Sword To Offer 033 - 丑数

Sword To Offer 033 - 丑数

作者头像
Reck Zhang
发布于 2021-08-11 11:13:49
发布于 2021-08-11 11:13:49
4720
举报
文章被收录于专栏:Reck ZhangReck Zhang

丑数

Desicription

把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。

Solution

代码语言:javascript
复制
class Solution {
public:
    long long GetUglyNumber_Solution(int index) {
        if(index == 0) {
            return 0;
        }
        set<long long> s;
        int token = 0;
        s.insert(1);
        while(token + 1 < index) {
            auto currentPoint = s.begin();
            long long currentNumber = *currentPoint;
            s.erase(currentPoint);
            token++;
            s.insert(currentNumber * 2);
            s.insert(currentNumber * 3);
            s.insert(currentNumber * 5);
        }
        return *s.begin();
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 丑数
    • Desicription
    • Solution
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档