本文共 878 字,大约阅读时间需要 2 分钟。
链接:https://leetcode-cn.com/problems/plus-one
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:
输入: [1,2,3]
输出: [1,2,4] 解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2] 解释: 输入数组表示数字 4321。
一次for循环解决问题
从数组尾部遍历 如果遇到数字不是9就+1,并返回 如果是9,则将当前数字置0,并进入下一轮循环考虑特殊情况:9999
此时需要检查最后一次for循环的数字是不是0 即digits[0]是否为0,如果是0,则遇到了特殊情况 此时需要在数组最前面加一个数字1,然后返回即可class Solution: def plusOne(self, digits: List[int]) -> List[int]: for i in range(len(digits)-1, -1, -1): if digits[i] is not 9: # 不是9 digits[i] += 1 return digits else: # 是9 digits[i] = 0 if digits[0] is 0: digits.insert(0, 1) return digits
https://leetcode-cn.com/problems/plus-one/solution/python3-yi-ci-forxun-huan-jie-jue-wen-ti-by-821218/
转载地址:http://oujii.baihongyu.com/