题目来源
ugly number升级版…我都忘了之前怎么做的了…然后看了下之前做的,才记起来…
代码如下:
class Solution {
public:
int nthSuperUglyNumber(int n, vector<int>& primes) {
vector<int> dp(n, 1);
vector<int> p(primes.size(), 0);
for (int i=1; i<n; i++) {
dp[i] = dp[p[0]] * primes[0];
for (int j=0; j<primes.size(); j++)
dp[i] = min(dp[i], dp[p[j]] * primes[j]);
for (int j=0; j<primes.size(); j++)
if (dp[i] == dp[p[j]] * primes[j])
p[j]++;
}
return dp[n-1];
}
};
网友评论