class Solution {
public:
int nthUglyNumber(int n) {
if (n < 1) {return INT_MIN;}
int two = 0, three = 0, five = 0;
vector<int> dp(n);
dp[0] = 1;
for (int i = 1; i < n; ++i) {
int t1 = dp[two] * 2, t2 = dp[three] * 3, t3 = dp[five] * 5;
dp[i] = min(min(t1, t2), t3);
if (dp[i] == t1) {++ two;}
if (dp[i] == t2) {++ three;}
if (dp[i] == t3) {++ five;}
}
return dp[n - 1];
}
};
Leetcode剑指 Offer 49. 丑数&264. 丑数 II
最新推荐文章于 2023-07-10 00:13:40 发布