题目描述
我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。
例如 6、8 都是丑数,但 14 不是,因为它包含质因子 7。
求第 n 个丑数的值。
样例
输入:5
输出:5
解题思路
三路归并
参考
C++ 代码
class Solution {
public:
int getUglyNumber(int n) {
vector<int> q(1,1);
int i = 0, j = 0, k = 0;
while(--n)
{
int t = min(q[i] * 2, min(q[j] * 3, q[k] * 5));
q.push_back(t);
if(q[i] * 2 == t ) i++;
if(q[j] * 3 == t ) j++;
if(q[k] * 5 == t ) k++;
}
return q.back();
}
};