c++
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
if (digits.empty())
return digits;
int update = 0;
int n = digits.size() - 1;
while (n>=0){
if (n == digits.size() - 1)
update += digits[n] + 1;
else
update += digits[n];
digits[n] = update % 10;
update /= 10;
n--;
}
if (update > 0){
digits.insert(digits.begin(), update);
}
return digits;
}
};
python
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
if not digits: return digits
update = 0
n = len(digits)-1
while n>=0:
if n== len(digits)-1:
update += digits[n]+1
else:
update += digits[n]
digits[n] = update%10
update /= 10
n -= 1
if update >0:
return [1] + digits
return digits