题目:我们把只包含因子2、3、5的数称为丑数。求按从小到大的顺序的第1500个丑数。例如,6、8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做第一个丑数。
- 创建数组保存已找到的丑数,用空间换时间的解法
class Solution {
public:
int nthUglyNumber(int n) {
vector<int> nums(1,1);
int i2=0,i3=0,i5=0;
while(nums.size()<n)
{
int m2=nums[i2]*2;
int m3=nums[i3]*3;
int m5=nums[i5]*5;
int mm=min(m2,min(m3,m5));
nums.push_back(mm);
if(mm==m2)
i2++;
if(mm==m3)
i3++;
if(mm==m5)
i5++;
}
return nums.back();
}
};