一图搞懂!!!代码都差不多
public int GetUglyNumber_Solution(int index) {
if (index < 7) {
return index;
}
int p2 = 0, p3 = 0, p5 = 0; //三个指针
int[] a = new int[index];
a[0] = 1;
for (int i = 1; i < index; i++) {
a[i] = Math.min(a[p2] * 2, Math.min(a[p3] * 3, a[p5] * 5));
if (a[i] == a[p2] * 2) {
p2++;
}
if (a[i] == a[p3] * 3) {
p3++;
}
if (a[i] == a[p5] * 5) {
p5++;
}
}
return a[index - 1];
}


京公网安备 11010502036488号