LeetCode算法入门 加一 解法与分析

问题描述:

  • 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

    题目来自于:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/27/
    LeetCode算法入门 加一 解法与分析_第1张图片

解法一:

使用递归方法。

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int n = digits.size();
        compute(digits,n-1);
        return digits;
    }
    void compute(vector<int>& digits,int current){
        digits[current]++;
        if(digits[current]==10){
            if(current==0){//第一位是9,再加一后变成10,要加一位
                digits[current]=0;
                digits.insert(digits.begin(),1);
            }
            else{
                digits[current]=0;
                compute(digits,current-1);
            }
        }
    }
};

你可能感兴趣的:(leetcode力扣)