题目描述
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
public class Solution {
public int GetUglyNumber_Solution(int index) {
int[] array = new int[index+2];
array[1] = 1;
int i=2, i2=1, i3=1, i5=1;
while (i<=index) {
int minResult = Math.min(array[i2]*2, Math.min(array[i3]*3, array[i5]*5));
if (minResult==array[i2]*2) {
++i2;
}
if (minResult==array[i3]*3) {
++i3;
}
if (minResult==array[i5]*5) {
++i5;
}
array[i++] = minResult;
}
return array[index];
}
}