Description
Given a non-empty array of digits representing a non-negative integer, increment one to the integer.
The digits are stored such that the most significant digit is at the head of the list, and each element in the array contains a single digit.
You may assume the integer does not contain any leading zero, except the number 0 itself.
Constraints:
1 <= digits.length <= 100
0 <= digits[i] <= 9
Example
Example 1:
Input: digits = [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.
Example 2:
Input: digits = [4,3,2,1]
Output: [4,3,2,2]
Explanation: The array represents the integer 4321.
Example 3:
Input: digits = [0]
Output: [1]
Submissions
解题思路是首先倒序遍历数组digits,先将最后一位加1,若小于10则直接break,返回更新的digits。若等于10,则将当前位置为0,遍历下一位加1,以此类推。若遍历到数组的第一个数字加1仍等于0时,则当前位仍置为0,并在digits数组前添加1,返回即可。
实现代码如下:
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
for i in reversed(range(len(digits))):
digits[i] += 1
if digits[i] < 10:
break
digits[i] = 0
else:
return [1] + digits
return digits