剑指offer:第N个丑数

当索引小于7都是丑数,返回索引就行,在定义个result的向量,大小为索引,初始化为零,把第一位设为1(第一个丑数为1),将三个整型变量初始化为0,为了以后更新计算出的丑数,for循环,i遍历index,找到三个数中的最小值,再用三个if,这样就可以得到下一个丑数,更新、遍历完,把最小值赋给result向量的第i位(计算出来的第i个丑数),最后返回向量result的最后一个元素即为所求!!!

class Solution{
public:
int GetUglyNumber_Solution(int index ){
    if(index<7) return index;
    vector<int> result(index,0);
    result[0]=1;
    int indexTwo = 0,indexThree = 0,indexFive =0;
    for(int i = 1;i<index;++i){
        int minNum=min(min(result[indexTwo]*2,result[indexThree]*3),result[indexFive]*5);
        if(minNum==result[indexTwo]*2) indexTwo++;
        if(minNum==result[indexThree]*3) indexThree++;
        if(minNum==result[indexFive]*5) indexFive++;
        result[i]=minNum;
    }
    return result[index-1];
}

};

#剑指offer##23届找工作求助阵地#
全部评论

相关推荐

双非一本失业第二年:《机器视觉垃圾分类》
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务