给你一个整数 n ,请你找出并返回第 n 个 丑数 。
**说明:**丑数是只包含质因数 2、3 和/或 5 的正整数;1 是丑数。
示例 1:
输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
提示:
-
1 <= n <=``1690class Solution {
public:
int nthUglyNumber(int n) {
int dp[n+1];
int p2=1,p3=1,p5=1;
dp[1]=1;
for(int i=2;i<=n;i++){
int cur2=dp[p2]*2;
int cur3=dp[p3]*3;
int cur5=dp[p5]*5;
int next=min(cur2,min(cur3,cur5));
if(cur2==next){
p2++;
}
if(cur3==next){
p3++;
}
if(cur5==next){
p5++;
}
dp[i]=next;
}
return dp[n];
}
};//