Super Ugly Number
Thoughts
Code
class Solution {
public int nthSuperUglyNumber(int n, int[] primes) {
int[] f = new int[n];
f[0] = 1;
int[] g = new int[primes.length];
for (int i = 1; i < n; i++) {
int min = Integer.MAX_VALUE, minIndex = -1;
for (int j = 0; j < g.length; j++) {
if (f[g[j]] * primes[j] < min) {
minIndex = j;
min = f[g[j]] * primes[j];
}
}
g[minIndex]++;
if (min == f[i - 1]) {
i--;
} else {
f[i] = min;
}
}
return f[n - 1];
}
}Analysis
Ver2.
Last updated