剑指Offer 34题 丑数 Java版

来源:互联网 发布:apache默认端口是多少 编辑:程序博客网 时间:2024/05/05 01:11
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 stubGetNglyNumber getNglyNumber = new GetNglyNumber();System.out.println(getNglyNumber.getNglyNumber(1500));}}

0 0
原创粉丝点击