313. Super Ugly Number - cocoder39/coco39_LC GitHub Wiki

313. Super Ugly Number

follow up of ugly number ii, they share the same idea.

O(sz * n)

int nthSuperUglyNumber(int n, vector<int>& primes) {
        vector<int> uglys(n, INT_MAX);
        uglys[0] = 1;
        vector<int> idx(primes.size(), 0);
        
        int k = 1;
        for (int k = 1; k < n; k++) {
            for (int i = 0; i < idx.size(); i++) {
                uglys[k] = min(uglys[k], primes[i] * uglys[idx[i]]);
            }
            
            for (int i = 0; i < idx.size(); i++) {
                if (uglys[k] % primes[i] == 0) {
                    idx[i]++;
                }
            }
        }
        return uglys[n - 1];
    }

solution 2: priority_queue solution

⚠️ **GitHub.com Fallback** ⚠️