LintCode解题思路LintCode解题思路

OJ lintcode 加一

2017-02-19  本文已影响6人  DayDayUpppppp

给定一个非负数,表示一个数字数组,在该数的基础上+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;

    

    }
};
上一篇 下一篇

猜你喜欢

热点阅读