66. Plus One

Given a non-negative number represented as an array of digits, plus one to the number.

The digits are stored such that the most significant digit is at the head of the list.
Analysis:
理解题意:用一个数字构成的数组来表示一个非负的数,对这个数加一。
题目简单,这个题目给人一个启示:比较大的数字可以用数组来存储。
Source Code(C++):

#include <iostream>
#include <vector>
using namespace std;

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int digitOverFlow = 0;
        digits.at(digits.size()-1)++;
        for(int i=digits.size()-1; i>=0; i--){
            int tempDigit = digits.at(i)+digitOverFlow;
            if (tempDigit > 9) {
                digits.at(i) = tempDigit%10;
                digitOverFlow=1;
            }
            else {
                digits.at(i) = tempDigit;
                digitOverFlow=0;
            }
        }
        if (digitOverFlow ==1) {
            digits.insert(digits.begin(), 1);
        }
        return digits;
    }
};


int main() {
    Solution sol;
    vector<int> v;
    v.push_back(2);
    v.push_back(1);
    vector<int> plusOneV= sol.plusOne(v);
    for (int i=0; i<plusOneV.size(); i++) {
        cout << plusOneV.at(i);
    }
    return 0;
}

你可能感兴趣的:(66. Plus One)