class Solution {
public:
int getUglyNumber(int n) {
//三个序列,为公因子为2,3,5,i,j,k指针指向他们的开头,先选择最小的数加入总序列
//如果该数和其他的序列中的数相等,其他的序列中指针向后移动一位
vector<int> f(1,1); //记录所有抽数
int i = 0,j = 0,k = 0;
//循环n-1次,最后的答案会在数组最后,
while(--n){
int t = min(f[i] * 2,min(f[j] * 3,f[k] * 5));
if(t == f[i] * 2) i++;
if(t == f[j] * 3) j++;
if(t == f[k] * 5) k++;
f.push_back(t);
}
return f.back();
}
};