多指针
Thoughts
Code
class Solution {
public int nthUglyNumber(int n) {
int[] f = new int[n];
f[0] = 1;
int k2 = 0, k3 = 0, k5 = 0;
for (int i = 1; i < n; i++) {
f[i] = Math.min(f[k2] * 2, Math.min(f[k3] * 3, f[k5] * 5));
if (f[i] == f[k2] * 2) k2++;
if (f[i] == f[k3] * 3) k3++;
if (f[i] == f[k5] * 5) k5++;
}
return f[n - 1];
}
}Analysis
Last updated