问题描述:
-
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
题目来自于:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/27/
解法一:
使用递归方法。
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);
}
}
}
};