塞进裤子ヾ(≧O≦)〃嗷~

0%

66加一

最初想法:

将最后一位数字+1,如果大于10,再将其上一位的数字加一.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
n = len(digits)-1
# digits[n] + 1
while digits[n]+1>=10 and n>=0:
digits[n] = digits[n] - 9
n -= 1
if n<0: #首位元素是9加1的情况
digits.insert(0,1)
else:
digits[n] = digits[n] + 1
return digits

改进:

只有9的时候才会进位,所以只要判断是不是9就行,能稍微加快速度。

最终版本

1
2
3
4
5
6
7
8
9
10
11
def plusOne(self, digits):
n = len(digits)-1
# digits[n] + 1
while digits[n] == 9 and n>=0:
digits[n] = 0
n -= 1
if n<0: #首位元素是9加1的情况
digits.insert(0,1)
else:
digits[n] = digits[n] + 1
return digits
if help:小手一抖点个广告 or 大手一挥资助一下