描述
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
代码
import java.util.*;
public class Solution {
Map<Integer,Boolean> ug=new HashMap<>();
public int GetUglyNumber_Solution(int index) {
if(index<=0){
return 0;
}
int[] array=new int[index];
int i2=0,i3=0,i5=0;
array[0]=1;
int temp=0;
int count=0;
while(count<index-1){
temp=Min(array[i2]*2,array[i3]*3,array[i5]*5);
if(temp==array[i2]*2){
i2++;
}
if(temp==array[i3]*3){
i3++;
}
if(temp==array[i5]*5){
i5++;
}
array[++count]=temp;
}
return array[index-1];
}
public int Min (int num1, int num2, int num3) {
int min = Math.min(num1, num2);
min = Math.min(min, num3);
return min;
}
}