313.Super Ugly Number
1-Ref 264
class Solution {
public int nthSuperUglyNumber(int n, int[] primes) {
int k = primes.length;
int[] index = new int[k];
Arrays.fill(index, 1);
int[] ans = new int[n + 1];
ans[1] = 1;
for(int i = 2; i <= n; i++){
ans[i] = ans[index[0]] * primes[0];
for(int j = 1; j < k; j++){
ans[i] = Math.min(ans[i], ans[index[j]] * primes[j]);
}
for(int j = 0; j < k; j++){
if(ans[i] == ans[index[j]] * primes[j])
index[j]++;
}
}
return ans[n];
}
}