024-力扣刷题-66--加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2:

输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        for i in reversed(range(len(digits))): #从右向左取数

            if digits[i] == 9: #取到的数是9就变成0
                digits[i] =0

            else:
                digits[i]+=1 #取到的不是9,那么就让这一位+1,比如第一个循环的时候是8那么就会跳到这里,直接加1并且返回
                #如果一开始取到的是9给它置零.循环到下一位不是8那么加一就是对前面的一个进位加
                return digits
        digits[0]=1 #如果是整个的for循环都执行完了那么就说明是全是9999的情况,那么for循环完了以后的结果就是0000
        #此时我们把第一位变成1同时末位添加0变成10000最后再返回
        digits.append(0)
        return digits