313. Super Ugly Number - cocoder39/coco39_LC GitHub Wiki
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