OJ lintcode 加一

给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照大小进行排列,最大的数在列表的最前面。
您在真实的面试中是否遇到过这个题?
Yes
样例
给定 [1,2,3] 表示 123, 返回 [1,2,4].
给定 [9,9,9] 表示 999, 返回 [1,0,0,0].

class Solution {
public:
    /**
     * @param digits a number represented as an array of digits
     * @return the result
     */
    vector<int> plusOne(vector<int>& digits) {
        // Write your code here

        vector<int> rec_digits(digits.rbegin(),digits.rend());
        int flag=1;

        for(int i=0;i<rec_digits.size();i++){
            int val=rec_digits[i]+flag;
            if(val>=10){
                rec_digits[i]=val�;
                flag=val/10;
            }
            else{
                rec_digits[i]=val;
                flag=0;
            }
        }
        if(flag==1){
            rec_digits.push_back(1);
        }
        digits.assign(rec_digits.rbegin(),rec_digits.rend());
        return digits;

    

    }
};
    原文作者:zhaozhengcoder
    原文地址: https://www.jianshu.com/p/fe1e8f74ee55#comments
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞