//超时

public class Solution {

public int GetUglyNumber_Solution(int index) {
    if(index==1)
        return 1;
    int sum=1;
    int n=1;
    int res=1;

    while(true){
        n++;
        if(f(n))
            sum++;
        if(sum==index)
            return n;
    }

}

public boolean f(int n){

    int a[]={2,3,5};

    int len=a.length;

    int i=0;

    int sum=1;

    int temp = n;
    while(i<len){
        if(sum==n)
            return true;
        else if(sum>n)
            return false;
        else if(temp%a[i]==0){
            sum=sum*a[i];
            temp=temp/a[i];
        }
        else
            i++;
    }
    return false;
}

}

//可行的方案

import java.util.*;

public class Solution {

public int GetUglyNumber_Solution(int index) {

    if(index<1)
        return 0;
  int a[]=new int[index];
    a[0]=1;

    int i1=0,i2=0,i3=0;
    int temp1;
    for(int i=1;i<a.length;i++){
        temp1=Math.min(a[i1]*2,a[i2]*3);
        a[i]=Math.min(temp1,a[i3]*5);

        if(a[i]==a[i1]*2) i1++;
        if(a[i]==a[i2]*3) i2++;
        if(a[i]==a[i3]*5) i3++;
    }

    return a[index-1];
}

}

12-04 18:23