Super Ugly Number

2017-04-24  本文已影响12人  我叫胆小我喜欢小心

题目来源
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];
    }
};
上一篇 下一篇

猜你喜欢

热点阅读