題目描述
把只包含因子2、3和5的數(shù)稱作丑數(shù)(Ugly Number)肝箱。例如6哄褒、8都是丑數(shù),但14不是煌张,因為它包含因子7呐赡。 習慣上我們把1當做是第一個丑數(shù)。求按從小到大的順序的第N個丑數(shù)骏融。
import java.util.ArrayList;
public class Solution {
public int GetUglyNumber_Solution(int input) {
if(input == 0)
return 0;
ArrayList<Integer> array = new ArrayList<Integer>();
int n2 = 1;
int m2 = 0;
int n3 = 1;
int m3 = 0;
int n5 = 1;
int m5 = 0;
array.add(1);
int n = 1;
while(n < input){
int min = Math.min(n2*2, Math.min(n3*3, n5*5));
array.add(min);
if(n2*2 <= min) {
m2 ++;
n2 = array.get(m2);
}
if(n3*3 <= min) {
m3 ++;
n3 = array.get(m3);
}
if(n5*5 <= min) {
m5 ++;
n5 = array.get(m5);
}
n ++;
}
return array.get(input - 1);
}
}