题意:求有2,3,5构成的前n个丑数。
题解:和之前那个super ugly number一样的做法。http://blog.youkuaiyun.com/youthinkwu/article/details/50676381
class Solution {
public:
int nthUglyNumber(int n) {
int primes[3] = {2,3,5};
int k = 3;
int ans[n + 1],index[k + 1];
memset(index,0,sizeof(index));
ans[0] = 1;
for(int i = 1; i < n; i++)
{
int minx = primes[0] * ans[index[0]];
for(int j = 1; j < k; j++)
{
minx = min(minx,primes[j] * ans[index[j]]);
}
ans[i] = minx;
for(int j = 0; j < k; j++)
if(primes[j] * ans[index[j]] == minx)
index[j]++;
}
return ans[n - 1];
}
};