注意大数溢出的问题
import java.util.ArrayList; import java.util.List; public class Solution { public int nthUglyNumber(int n) { List<Long> res=new ArrayList<Long>(); res.add(1L); for(int i=1;i<n;i++) { long min=0; long num2=0; for(int j=i-1;j>=0;j--) { if(res.get(j)*2<=res.get(i-1)) break; num2=res.get(j)*2; } long num3=0; for(int j=i-1;j>=0;j--) { if(res.get(j)*3<=res.get(i-1)) break; num3=res.get(j)*3; } min=num2<num3?num2:num3; long num5=0; for(int j=i-1;j>=0;j--) { if(res.get(j)*5<=res.get(i-1)) break; num5=res.get(j)*5; } min=min<num5?min:num5; res.add(min); } return (res.get(n-1)).intValue(); } // public static void main(String []args) // { // Solution.nthUglyNumber(3); // // } }