原题链接:264. Ugly Number II
【思路-Java】动态规划
该题考查动态规划。一个因子是2,3,5中的一个,另一个因子在 uglys 数组中,该因子下标存储在 ids 数组中:
public class Solution {
public int nthUglyNumber(int n) {
int[] ids = new int[3];
int[] uglys = new int[n];
uglys[0] = 1;
for(int i = 1; i < n; i++) {
int a = uglys[ids[0]] * 2;
int b = uglys[ids[1]] * 3;
int c = uglys[ids[2]] * 5;
int min = Math.min(a, Math.min(b, c));
if(a == min) ids[0]++;
if(b == min) ids[1]++;
if(c == min) ids[2]++;
uglys[i] = min;
}
return uglys[n-1];
}
}
596 / 596
test cases passed. Runtime: 8 ms Your runtime beats 88.72% of javasubmissions.