LeetCode初级算法(数组篇)-----加一

LeetCode初级算法(数组篇)-----加一

LeetCode初级算法(数组篇)-----加一

  • LeetCode初级算法(数组篇)-----加一
  • 题目
  • 解题思路
  • 代码

题目

LeetCode初级算法(数组篇)-----加一_第1张图片

解题思路

从最后一位开始考虑,是否为9的情况。
如果不为9,直接加一输出result

如果为9,先将本位值为零,
考虑上一位数的值的情况,如果
考虑为9的情况,递归循环处理。
如果到了第一个数还是9,将最高位设置为0,并且在最高位之前插入1作为 新的
从最后一位开始考虑

代码

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int now = digits.size()-1;    //求出长度
        while(now>=0){              
            int num = digits[now]+1;   //最后一位加一
            if(num!=10){               //判断是否等于10
                digits[now] = num;      //不等于直接赋值输出
                return digits;      
            }else{
                digits[now]=0;         //先将末尾设置为0
                if(now==0){        //判断是否为最高位
                    digits.insert(digits.begin(),1);  //插入1
                    return digits;
                }
                now--;   //遍历上一位 在else中加入now更新的
            }
        }
        return {};
    }
};

你可能感兴趣的:(LeetCode,C++,算法,leetcode)