找出第n个ugly number(因数只有2 3 5)
代码写得很巧妙 学到了
因为每一轮都会将cur与2 3 5 分别判断一遍,所以不会有重复值
class Solution {
public int nthUglyNumber(int n) {
ArrayList<Integer> ans = new ArrayList<>();
ans.add(1);
int i2 = 0, i3 = 0, i5 = 0;
while(ans.size()<n){
int cur = Math.min(ans.get(i2)*2,Math.min(ans.get(i3)*3,ans.get(i5)*5));
if(cur == ans.get(i2)*2) i2++;
if(cur == ans.get(i3)*3) i3++;
if(cur == ans.get(i5)*5) i5++;
ans.add(cur);
}
return ans.get(n-1);
}
}