题解 | 丑数
丑数
https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b
class Solution { public: //数只有2、3、5构成,可以利用前面的数生成后面的数,开始只有丑数1,通过乘2、3、5,来得到下一个丑数 int GetUglyNumber_Solution(int index) { int i=0, j=0, k=0, now; vector<int> v(1, 1); while( v.size() < index ){ now = min( v[i]*2, min(v[j]*3, v[k]*5) ); //得到下一个丑数 v.push_back(now); if( v[i]*2==now )i++; //移动数,如果加入了数组,则对下一个数乘得到丑数,下一轮再取三个数的最小数; if( v[j]*3==now )j++; if( v[k]*5==now )k++; } return v[index-1]; } };