qingcheng奕  

http://oj.leetcode.com/problems/plus-one/

进位加法

#include <iostream>
#include <vector>

using namespace std;

class Solution {
public:
    vector<int> plusOne(vector<int> &digits) {
        // IMPORTANT: Please reset any member data you declared, as
        // the same Solution instance will be reused for each test case.
        vector<int> ansVector;
         
        if(digits.empty())
            return digits;
        vector<int>::iterator iter = digits.end()-1;

        while(iter!=digits.begin())
        {
            if(*iter!=9)
            {
                *iter = *iter +1;
                return digits;
            }
            *iter = 0;
            iter--;
        }
        if(digits[0]!=9)
        {
            digits[0]+=1;
            return digits;
        }
        ansVector.push_back(1);
        for(int i = 0;i<digits.size();i++)
        ansVector.push_back(0);
        return ansVector;
    }
};

int main()
{
    Solution mySolution;
    vector<int> input;
    input.push_back(9);
    input.push_back(9);
    mySolution.plusOne(input);
    return 0;
}

 

posted on 2013-11-16 15:43  qingcheng奕  阅读(147)  评论(0编辑  收藏  举报