美文网首页
【剑指 offer】丑数

【剑指 offer】丑数

作者: 邓泽军_3679 | 来源:发表于2019-05-05 12:10 被阅读0次

1、题目描述

我们把只包含因子2、3和5的数称作丑数(Ugly Number)。

例如6、8都是丑数,但14不是,因为它包含因子7。

求第n个丑数的值。

样例:

输入:5
输出:5

注意:习惯上我们把1当做第一个丑数。

2、问题描述:

1, 2, 3, 4, 5, 6, 8, 9, 10 ...

3、问题关键:

  • 可以看出下一个丑数是前面的某个数乘于(2, 3, 5)中的一个获得的最小值。
  • 可以用三个指针,i,j,k,依次指向1,2,3 ...前面的数,乘于(2, 3, 5),穷举所有的丑数。

4、C++代码:

class Solution {
public:
    int getUglyNumber(int n) {
        vector<int> q(1, 1);//定义一个可变数组,值为1。
        int i = 0, j = 0, k = 0;//同时指向第一个位置。
        while(-- n) {
            int t = min(q[i] * 2, min(q[j] * 3, q[k] * 5));//下一个数是,当前数组中乘于(2, 3, 5)得到的最小值。
            q.push_back(t);
            if (q[i] * 2 == t) i ++;//放入数组中,并将i向后移动一个位置。
            if (q[j] * 3 == t) j ++;
            if (q[k] * 5 == t) k ++;
        }
        return q.back();//最后一个就是第n个丑数。
        
    }
};

相关文章

  • [剑指offer] 丑数

    本文首发于我的个人博客:尾尾部落 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6...

  • 【剑指 offer】丑数

    1、题目描述 我们把只包含因子2、3和5的数称作丑数(Ugly Number)。 例如6、8都是丑数,但14不是,...

  • ARTS 05

    Algorithm [剑指offer] 丑数Review Google如何跟踪您的个人信息Tip ...

  • 剑指 Offer 49. 丑数

    剑指 Offer 49. 丑数[https://leetcode-cn.com/problems/chou-shu...

  • 剑指offer----丑数

    题目:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子...

  • 【剑指Offer 34】丑数

    题目:我们把只包含因子2、3 和5 的数称作丑数(Ugly Number)。求从小到大的顺序的第1500个丑数。 ...

  • 【python】剑指offer,丑数?

    题目:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质...

  • 剑指Offer-丑数

    获取前N个丑数 如果一个数的素因子只有 2,3,5 ,我们称它为丑数,1 是第一个丑数, 要求按大小输出前N个丑数...

  • 剑指Offer--丑数

    https://bellick.github.io/2019/01/09/getUglyNumber/#more

  • 剑指Offer——丑数 Java

    题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包...

网友评论

      本文标题:【剑指 offer】丑数

      本文链接:https://www.haomeiwen.com/subject/fvpcoqtx.html