题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一,最高位数字存放在数组的首位,数组中的每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。
示例:
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字123
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
idx = len(digits) - 1 #找一个下标索引
while idx >= 0 and digits[idx] == 9: #从个位开始找9,依照个十百千万的顺序依次找下去,直到找到第一个不为9的位为止
digits[idx] = 0 #遇到9进位,并将此位置0
idx -= 1 #下标前移
if idx >= 0: #循环结束时判断下标,将第一个不是9的这一位加1
digits[idx] +=1
else: #循环结束,如果连最大的一位都是9的话,那直接在最前面添一个1,如果数字只有一位数的也同样算进去了
digits = [1] + digits
return digits #返回最终结果