首页 > 其他 > 详细

LeetCode66. 加一

时间:2020-06-29 23:16:47      阅读:63      评论:0      收藏:0      [点我收藏+]

技术分享图片
用一个数组记录各个位数的变化,通过低位+1,观察各个位数的变化。
注意一下如果最高位因为进位导致多了一位,需要将进位(只可能是1 push_back()进数组)

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        reverse(digits.begin(), digits.end());            //由于push_back()只能将数加在后面,因此要先翻转数组
        int carry = 1;                                    //carry表示进位,初始为1,因为题目要我们加一
        for(auto& digit : digits) {                       //从低位到高位确定每一位的数字
            carry += digit;
            digit = carry % 10;
            carry /= 10;
        }
        if(carry == 1) {                                  //如果到了最高位还是有进位,需要将进位1压入数组
            digits.push_back(carry);
        }
        reverse(digits.begin(), digits.end());            //再翻转回来
        return digits;
    }
};

LeetCode66. 加一

原文:https://www.cnblogs.com/linrj/p/13210831.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!