LeetCode---Plus One

来源:互联网 发布:农村淘宝政府如何补贴 编辑:程序博客网 时间:2024/06/03 22:08

题目大意:给出一个数存储在数组中,数组的每个元素值为该数的一个数位,该数最高位在数组的头部,将该数加上1返回其结果。

算法思想:

1.为方便操作,将数组逆序,同时设置进位初始化为0.

2.遍历数组,如果是数组中第一个元素则将其加1,否则将其与进位相加,然后将结果%10存储在数组中,计算是否产生进位。

3.当遍历完数组后,如果还有进位则将进位存入结果数组中。

4.将结果数组逆序并返回。

代码如下:

class Solution {public:    vector<int> plusOne(vector<int>& digits) {        vector<int> res;        if(digits.size()==0) return res;        reverse(digits.begin(),digits.end());        int d=0,tmp=0;        for(int i=0;i<digits.size();++i){           if(i==0)               tmp=digits[i]+1;            else               tmp=digits[i]+d;            res.push_back(tmp%10);            d=tmp/10;        }        if(d) res.push_back(d);        reverse(res.begin(),res.end());        return res;    }};


0 0