package test;
import java.util.Arrays;
public class GetNglyNumber {
public int getNglyNumber(int index){
if(index <= 0){
return 0;
}
int[] pUglyNumbers = new int[index];
pUglyNumbers[0]= 1;
int nextUglyNumbers =1;
int pMultiply2 = 0;
int pMultiply3 = 0;
int pMultiply5 = 0;
while(nextUglyNumbers<index){
int min = minF(pUglyNumbers[pMultiply2]*2, pUglyNumbers[pMultiply3]*3, pUglyNumbers[pMultiply5]*5);
pUglyNumbers[nextUglyNumbers] = min;
while(pUglyNumbers[pMultiply2]*2 <= pUglyNumbers[nextUglyNumbers]){
++pMultiply2;
}
while(pUglyNumbers[pMultiply3]*3 <= pUglyNumbers[nextUglyNumbers]){
++pMultiply3;
}
while(pUglyNumbers[pMultiply5]*5 <= pUglyNumbers[nextUglyNumbers]){
++pMultiply5;
}
nextUglyNumbers++;
}
System.out.print(Arrays.toString(pUglyNumbers));
int guly = pUglyNumbers[nextUglyNumbers-1];
pUglyNumbers = null;
return guly;
}
private int minF(int number1, int number2, int number3){
int min = number1 < number2 ? number1 : number2;
min = min < number3? min : number3;
return min;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
GetNglyNumber getNglyNumber = new GetNglyNumber();
System.out.println(getNglyNumber.getNglyNumber(1500));
}
}
剑指Offer 34题 丑数 Java版
最新推荐文章于 2024-09-14 22:25:23 发布