题解 | 丑数

丑数

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];
    }
}; 

全部评论

相关推荐

07-15 18:09
门头沟学院 Java
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务