class Solution {
public:
int min(int a,int b,int c)
{
if(a<=b&&a<=c)
return a;
else if(b<=a&&b<=c)
return b;
else
return c;
}
int nthUglyNumber(int n)
{
if(n == 0)
return -1;
int*ret = new int[n]();
ret[0] = 1;
int i;
int a = 0,b = 0,c = 0;
if(n <= 6)
return n;
for(i = 1;i < n;++i)
{
ret[i] = min(ret[a]*2,ret[b]*3,ret[c]*5);
if(ret[i]%2 == 0)
a++;
if(ret[i]%3 == 0)
b++;
if(ret[i]%5 == 0)
c++;
}
return ret[n-1];
}
};
日常刷题 4
最新推荐文章于 2021-09-26 11:58:53 发布