package leetcode;
public class offer_49 {
public int nthUglyNumber(int n) {
int[] dp=new int[n+1];
dp[1]=1;
int i=1, j=1,k=1;
//所以丑数分别乘以2,3,5,每次取当前位置的最小值
for (int index = 2; index <=n; index++) {
dp[index]=Math.min(2*dp[i], Math.min(3*dp[j], 5*dp[k]));
if(dp[index]==2*dp[i]) {i++;}
if(dp[index]==3*dp[j]) {j++;}
if(dp[index]==5*dp[k]) {k++;}
}
return dp[n];
}
public static void main(String[] args) {
// TODO Auto-generated method stub
offer_49 off=new offer_49();
System.out.println(off.nthUglyNumber(10));
}
}