class Solution { public: int min3(int x,int y,int z) { int m; m=(x<y)?x:y; m=(m<z)?m:z; return m; } int GetUglyNumber_Solution(int index) { if(index==0) return 0; if(index==1) return 1; vector<int> ugly(index,0); ugly[0]=1; int num=1; int num2=0,num3=0,num5=0,res=0; while(num<index) { if(num2<num&&num3<num&&num5<num) { res=min3(ugly[num2]*2,ugly[num3]*3,ugly[num5]*5); if(ugly[num2]*2==res) num2++; if(ugly[num3]*3==res) num3++; if(ugly[num5]*5==res) num5++; ugly[num++]=res; } } return res; } };