题目描述:
我们把只包含因子2、3和5的数称作丑数(Ugly Number)。
例如6、8都是丑数,但14不是,因为它包含因子7。
求第n个丑数的值。
样例
输入:5
输出:5
注意:习惯上我们把1当做第一个丑数。
算法:
class Solution {
public:
int getUglyNumber(int n) {
if(n<=0)
{
return 0;
}
vector<int> value;
value.push_back(1);
int index2 = 0, index3 = 0, index5 = 0;
for(int i=1; i<n; i++)
{
int MIN = min(min(value[index2]*2, value[index3]*3), value[index5]*5);
value.push_back(MIN);
while(value[index2]*2<=value[i])
index2++;
while(value[index3]*3<=value[i])
index3++;
while(value[index5]*5<=value[i])
index5++;
}
return value[n-1];
}
};