程式語言 - LeetCode - C++ - 313. Super Ugly Number



參考資訊:
https://www.cnblogs.com/grandyang/p/5144918.html

題目:


解答:

class Solution {
public:
    int nthSuperUglyNumber(int n, vector<int>& primes) {
        int size = primes.size();
        vector<long> ans(1, 1);
        vector<long> idx(size, 0);

        while (ans.size() < n) {
            vector<long> t;
            long mn = INT_MAX;

            for (int i = 0; i < size; ++i) {
                t.push_back(ans[idx[i]] * primes[i]);
            }
            for (int i = 0; i < size; ++i) {
                mn = min(mn, t[i]);
            }
            for (int i = 0; i < size; ++i) {
                if (mn == t[i]) {
                    idx[i] += 1;
                }
            }
            ans.push_back(mn);
        }
        return ans.back();
    }
};