美文网首页
Leetcode数组easy | 66. 加一

Leetcode数组easy | 66. 加一

作者: Ivan_Lan | 来源:发表于2018-11-28 22:58 被阅读13次

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

    最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

    你可以假设除了整数 0 之外,这个整数不会以零开头。

    示例 1:
    输入: [1,2,3]
    输出: [1,2,4]
    解释: 输入数组表示数字 123。
    

    解答:

    class Solution {
    public:
        vector<int> plusOne(vector<int>& digits) {
            // 思路: 新建数组,取出原数组的元素,逐位相加,计算余数和进位,循环
            int num=1; //  初始进位
            vector<int> ret;  //  新建数组
            while(digits.size()>0){
                int x= digits.back();  //  取出旧数组的最后一位
                digits.pop_back(); //  删除旧数组的最后一位
                x= x+num; //  计算新数组的元素的值
                ret.insert(ret.begin(),x%10); //  插入新数组的首位
                num=x/10; //  计算进位
            }
            
            if(num>0){
                ret.insert(ret.begin(),num);
            }  //  判断最后的进位是否大于0,是的话再插入新数组
            
            return ret;
        }
    };
    

    相关文章

      网友评论

          本文标题:Leetcode数组easy | 66. 加一

          本文链接:https://www.haomeiwen.com/subject/vqptcqtx.html