给一个列表代表一个数,并给他加一。
这道题主要考查的是我们有没有考虑进位的情况。
python:
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
i = len(digits)-1
while i >= 0:
if digits[i] < 9:
digits[i] += 1
return digits
else:
digits[i] = 0
if i > 0:
i -= 1
else:
digits = [1] + digits
return digits
C++:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int i = digits.size() - 1;
while(i >= 0){
if(digits[i] < 9){
digits[i] += 1;
return digits;
}
else{
digits[i] = 0;
if(i > 0) i -= 1;
else{
digits.insert(digits.begin(),1);
return digits;
}
}
}
}
};