題意:給你k個素數,讓你求第n個醜數,臭數的定義是,隻包含給定的素質因子的數。1是特殊的醜數。
題解:每個質素都有一個隊列,相當于多個隊列取一個最小的出隊一樣。
class Solution {
public:
int nthSuperUglyNumber(int n, vector<int>& primes) {
int k = primes.size();
int ans[n + ],index[k + ];
memset(index,,sizeof(index));
ans[] = ;
for(int i = ; i < n; i++)
{
int minx = primes[] * ans[index[]];
for(int j = ; j < k; j++)
{
minx = min(minx,primes[j] * ans[index[j]]);
}
ans[i] = minx;
for(int j = ; j < k; j++)
if(primes[j] * ans[index[j]] == minx)
index[j]++;
}
return ans[n - ];
}
};