加一分两种情况:
1、除9之外的数字,直接加1
2、9加1,需要进位.
算法:
从末位往前,若该位为9则将其置位0,否则改为加1退出。若全为9则全部置位0后最高位插入1
Python3 Solution:
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
indexa = len(digits)-1
while indexa >= 0:
if digits[indexa] == 9:
digits[indexa] = 0
else:
digits[indexa] += 1
break
indexa -= 1
if indexa == -1:
digits = [1] + [0] * len(digits)
return digits
C++ Solution:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int indexa = digits.size()-1;
while(indexa >= 0){
if(digits[indexa] == 9)
digits[indexa] = 0;
else{
digits[indexa]++;
break;
}
indexa--;
}
if(indexa == -1)
digits.insert(digits.begin(), 1);
return digits;
}
};