题目:
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
示例:
示例 1:
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
示例 2:输入:digits = [4,3,2,1]
输出:[4,3,2,2]解释:输入数组表示数字 4321。
示例 3:输入:digits = [0]
输出:[0]
解法:
最后1位+1,如果没有进位就可以返回了,如果有进位,一直向前进位,直到不再产生进位。如果第1位也有进位,在列表头添加1。文章来源:https://www.toymoban.com/news/detail-656580.html
知识点:
1.列表切片:list[start : end : step],start : 起始索引,默认为0;end:结束索引,不包含,默认为列表的长度;step:步长,默认为1,当省略步长时,可以同时省略后一个冒号,步长为正时,从左向右取值,步长为负时,反向取值。步长为1,表示1个1取值,步长为2,表示间隔取值。如果步长为负数,要么起始和结束索引都省略,要么起始在结束位置后。在Python中,序列的序号即可以从左向右以0开始依次增加,也可以从右向左以 -1开始依次减少,因此通过的序号访问序列中的元素,同一个元素可以有2个序号。文章来源地址https://www.toymoban.com/news/detail-656580.html
代码:
class Solution: def plusOne(self, digits: List[int]) -> List[int]: carry = 0 for index, num in enumerate(digits[::-1]): if index == 0: if digits[-1] == 9: digits[-1] = 0 carry = 1 if index == len(digits) - 1: digits.insert(0, 1) else: digits[-1] = num + 1 break else: if carry == 1: if num == 9: digits[len(digits) - 1 - index] = 0 if index == len(digits) - 1: digits.insert(0, 1) else: digits[len(digits) - 1 - index] = num + 1 break else: break return digits
到了这里,关于力扣:66. 加一(Python3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!