记录
丑数
http://www.nowcoder.com/questionTerminal/6aa9e04fc3794f68acf8778237ba065b
public class Solution {
public int GetUglyNumber_Solution(int index) {
//特殊情况
if(index == 0){
return 0;
}
int[] res = new int[index];//依次保存丑数.第一个是1
res[0] = 1;
//p1.p2.p3下标去标记丑数有没有乘以2,3,5,初始值为0
int p1 = 0;
int p2 = 0;
int p3 = 0;
for(int i = 1 ;i<index;i++){
res[i]=Math.min(Math.min(res[p1]*2,res[p2]*3),res[p3]*5);//每一次循环选一个最小的
//标记数用过了就往后挪
if(res[i] == res[p1]*2){
p1++;
}
if(res[i] == res[p2]*3){
p2++;
}
if(res[i] == res[p3]*5){
p3++;
}
}
return res[index-1];//返回最新的一个丑数
}}