题目描述
多路归并,min会消除重复的。
样例
class Solution {
public int getUglyNumber(int n) {
if (n <= 1) return n;
List<Integer> f = new ArrayList<>();
f.add(1);
int i = 0, j = 0, k = 0;
long t = 0;
while (--n > 0) {
t = Math.min(f.get(i) * 2, Math.min(f.get(j) * 3, f.get(k) * 5));
if (t == f.get(i) * 2) i++;
if (t == f.get(j) * 3) j++;
if (t == f.get(k) * 5) k++;
f.add((int) t);
}
return f.get(f.size() - 1);
}
}