1、今天没时间,就先不写题解了,白嫖的大佬的思路。
class Solution {
public:
int nthUglyNumber(int n) {
int nums[1690]={0};
nums[0]=1;
int a1=0,a2=0,a3=0,count=0,temp=0;
while(count<n-1)
{
temp=min(nums[a1]*2,nums[a2]*3,nums[a3]*5);
if(temp==nums[a1]*2) ++a1;
else if(temp==nums[a2]*3) ++a2;
else ++a3;
if(temp==nums[count]) continue;
nums[++count]=temp;
}
return nums[count];
}
int min(int a,int b,int c)
{
int minnum=a;
if(b<minnum) minnum=b;
if(c<minnum) minnum=c;
return minnum;
}
};