题目链接:https://leetcode-cn.com/problems/ugly-number-ii/
题目如下:
class Solution {
public int nthUglyNumber(int n) {//动态规划
int[] dp=new int[n+1];
dp[1]=1;
int p2=1,p3=1,p5=1,num2,num3,num5;
for(int i=2;i<=n;i++){
num2=dp[p2]*2;num3=dp[p3]*3;num5=dp[p5]*5;
dp[i]=Math.min(Math.min(num2,num3),num5);//得到3个预放入的值的最小值
if(dp[i]==num2) p2++;
if(dp[i]==num3) p3++;
if(dp[i]==num5) p5++;
}
return dp[n];
}
}