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