leetcode 每日一题 66.加一

一次遍历

思路:

从后向前遍历数组,把相应位置数字加一,同时对10取余,如果不为0,则直接返回加1后的数组,如果为0,代表当前位置的数为9,继续遍历。如果遍历结束都没有返回结果,代表每一位数字均为9,则加一后的结果为原数组长度加一,第一位为1,其余为0。

代码:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        numSize = len(digits)
        for i in range(numSize-1,-1,-1):
            digits[i] += 1
            digits[i] %= 10
            if digits[i] != 0:
                return digits
        newDigits = [0 for _ in range(numSize+1)]
        newDigits[0] = 1
        return newDigits

 

posted @ 2020-06-08 17:36  nil_f  阅读(151)  评论(0)    收藏  举报