动态规划-丑数
class Solution {
public int nthUglyNumber(int n)
{
int a=0,b=0,c=0;//三个指针初始化
int num[] = new int[n];
num[0]=1;//动态规划初始化初值
for(int i=1;i<n;i++)//一步一步的把num[i]填上,num[0]已经填好了
{
while(num[a]*2<=num[i-1])//寻找第一个乘以2后大于的数
a++;
while(num[b]*3<=num[i-1])//寻找第一个乘以3后大于的数
b++;
while(num[c]*5<=num[i-1])//寻找第一个乘以5后大于的数
c++;
num[i] = getMin(num[a]*2,num[b]*3,num[c]*5);
}
return num[n-1];
}
int getMin(int a,int b,int c)
{
int min = a;
if(min>b)
min = b;
if(min>c)
min = c;
return min;
}
}