暴力法
class Solution {public:int nthSuperUglyNumber(int n, vector<int>& primes) {set<long long> nums;int count = 1;nums.insert(1);auto it = nums.begin();for (; count < n; ++count, ++it) {for (auto p : primes)nums.insert(*it * p);}return *it;}};
动态规划
class Solution {public:int nthSuperUglyNumber(int n, vector<int> &primes) {vector<int> next(primes.size(), 0);vector<int> dp(n);dp[0] = 1;for (int i = 1; i < n; ++i) {int minum = INT32_MAX;for (int j = 0; j < primes.size(); ++j)minum = min(dp[next[j]] * primes[j], minum);for (int j = 0; j < primes.size(); ++j)if (minum == dp[next[j]] * primes[j])++next[j];dp[i] = minum;}return dp[n - 1];}};
时间复杂度
空间复杂度
