定义三个索引,分别是i2,i3,i5。记录应该乘2,3,还是5。当选定乘几之后就把对应的索引加1,剩余的两个索引不做处理,留作下次继续比较。
public class Solution {
public int GetUglyNumber_Solution(int index) {
if(index<=0)
return 0;
int[] result=new int[index];
int count=0;
result[0]=1;
int i2=0;
int i3=0;
int i5=0;
int temp=0;
while(count<index-1){
temp=Math.min(result[i2]*2,Math.min(result[i3]*3,result[i5]*5));
if(result[i2]*2==temp)
i2++;
if(result[i3]*3==temp)
i3++;
if(result[i5]*5==temp)
i5++;
result[++count]=temp;
}
return result[index-1];
}
}