【leetcode】Plus One

Question:

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


Anwser 1: szie -> 0

class Solution {
public:
    vector<int> plusOne(vector<int> &digits) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        vector<int> result(digits);
        
        int carry = 1;
        int size = digits.size();
        
        for(int i = size - 1; i >= 0 ; i--){
            int tmp = result[i] + carry;
            result[i] = tmp % 10;
            carry = tmp / 10;
        }
        
        if(carry > 0){
            result.insert(result.begin(), carry);
        }
        
        return result;
    }
};


Anwser 2: 0 -> szie

class Solution {
public:
    vector<int> plusOne(vector<int> &digits) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        vector<int> result(digits);
        reverse(result.begin(), result.end());
        
        int carry = 1;
        int size = digits.size();
        
        for(int i = 0; i < size; i++){
            int tmp = result[i] + carry;
            result[i] = tmp % 10;
            carry = tmp / 10;
        }
        
        if(carry == 1){
            result.push_back(carry);
        }
        
        reverse(result.begin(), result.end());
        
        return result;
    }
};




参考推荐:
leetcode.com

cplusplus vector


你可能感兴趣的:(LeetCode)