题目:264. 丑数 II
动态规划3指针:
class Solution {
public:
int nthUglyNumber(int n) {
vector<int> dp(n+1);
dp[1] = 1;
int p2 = 1, p3 = 1, p5 = 1;
for(int i=2; i<=n; i++)
{
int n2 = 2*dp[p2], n3 = 3*dp[p3], n5 = 5*dp[p5];
dp[i] = min(min(n2, n3), n5);
// 不用else是因为会有如:2*3=3*2的情况
if(dp[i] == n2) p2++;
if(dp[i] == n3) p3++;
if(dp[i] == n5) p5++;
}
return dp[n];
}
};