test

public int GetUglyNumber_Solution(int index) {
		if (index <= 0) {
			return 0;
		}
		int[] uglyNums = new int[index];
		uglyNums[0] = 1;
		int nextUgly = 1, multiple2 = 0, multiple3 = 0, multiple5 = 0;
		while (nextUgly < index) {
			uglyNums[nextUgly] = min(uglyNums[multiple2] * 2,
					uglyNums[multiple3] * 3, uglyNums[multiple5] * 5);
			while (uglyNums[multiple2] * 2 <= uglyNums[nextUgly]) {
				multiple2++;
			}
			while (uglyNums[multiple3] * 3 <= uglyNums[nextUgly]) {
				multiple3++;
			}
			while (uglyNums[multiple5] * 5 <= uglyNums[nextUgly]) {
				multiple5++;
			}
			nextUgly++;
		}
		return uglyNums[--nextUgly];
	}

posted on 2016-09-08 10:37  北门煎饼东门串儿  阅读(120)  评论(0)    收藏  举报

导航