目录
题目
解法一
int min(int a, int b) {
return a < b ? a : b;
}
int nthUglyNumber(int n) {
int dp[n];
dp[0] = 1;
int two = 0, three = 0, five = 0;
for (int i = 1; i < n; i++) {
int a = 2 * dp[two];
int b = 3 * dp[three];
int c = 5 * dp[five];
dp[i] = min(min(a, b), c);
if (dp[i] == a) {
two++;
}
if (dp[i] == b) {
three++;
}
if (dp[i] == c) {
five++;
}
}
return dp[n - 1];
}