JAVA:醜數
阿新 • • 發佈:2018-12-09
題目描述:只包含素因子2,3,5的數就是醜數。例如2,4,6,8,10都是醜數,預設第一個醜數是1。求第n個醜數。 思路:依次計算出醜數,設定三個指標,依次從小到大遍歷這些求出的醜數,將這些指標所指的數分別乘2、3、5,再比較大小,將小的放進佇列。
public static int getUglyNumber_Solution(int index){
if(index==0)
return 0;
List<Integer> list=new ArrayList<Integer>();
list.add(1 );
int num2=0;
int num3=0;
int num5=0;
while(list.size()<index){
int two=list.get(num2)*2;
int three=list.get(num3)*3;
int five=list.get(num5)*5;
int min=Math.min(Math.min(two, three), five);
if(min==two)
num2++ ;
if(min==three)
num3++;
if(min==five)
num5++;
list.add(min);
}
return list.get(list.size()-1);
}