您的位置:首页 > 其它

[LeedCode OJ]#264 Ugly Number II

2015-08-24 15:51 176 查看
【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】





题目链接:https://leetcode.com/problems/ugly-number-ii/

题意:
如果一个数只含有2,3,5这三种因子,那么这个数就是Ugly
number,现在要求第n个Ugly
number是什么

思路:
开一个a数组存放所有Ugly
number,然后a2,a3,a5存放乘2,3,5的所有数,每次找一个最小的放入a中,并增加长度

class Solution
{
public:
    int nthUglyNumber(int n)
    {
        int* a=new int[n+1];
        int* a2 = a;
        int* a3 = a;
        int* a5 = a;
        int cnt = 0;
        a[cnt++] = 1;
        while(cnt<n)
        {
            int num = min(*a2*2,min(*a3*3,*a5*5));
            a[cnt++] = num;
            while(*a2*2<=num)
                a2++;
            while(*a3*3<=num)
                a3++;
            while(*a5*5<=num)
                a5++;
        }
        return a[cnt-1];
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: