/*
用三个指针分别对应2,3,5的乘机倍数
*/
class Solution {
public:
int nthUglyNumber(int n) {
int dp[2222];
int i1=1;
int i2=1;
int i3=1;
dp[1]=1;
for(int i=2;i<=n;i++)
{
int tmp=min(dp[i1]*2,min(dp[i2]*3,dp[i3]*5));
if(tmp == dp[i1]*2) i1++;
if(tmp == dp[i2]*3) i2++;
if(tmp == dp[i3]*5) i3++;
dp[i]=tmp;
}
return dp[n];
}
};