【Python3】巧用内置切片解决力扣66.加一
2026/6/26 2:19:59 网站建设 项目流程

【Python3】利用python3内置切片解决力扣66.加一


思路

-核心思想:通过模拟手算加法来实现 -具体思路(核心逻辑): -逆序定位第一个非 9 数字:从数组末尾(个位)向开头(最高位)遍历。 由于加 1 只会影响末尾连续的一段 9,我们只需找到从右往左第一个不是 9 的数字。 -执行加一与归零: -将该数字 +1(例如 2 变成 3)。 -因为该数字后面的所有低位必然都是 9,加 1 后这些位必须全部变成 0。 -处理完毕后,直接返回原数组。 -处理全是 9 的极端情况:如果循环遍历完整个数组都没找到非 9 数字(如 [9, 9]), 说明原数是 99...9。此时加 1 后结果为 100...0,长度增加 1,直接构造新数组返回。 -点睛之笔:利用python自带的“切片赋值”批量替代内层循环(斩杀 for 循环)

具体代码

classSolution:defplusOne(self,digits:List[int])->List[int]:n=len(digits)foriinrange(n-1,-1,-1):ifdigits[i]!=9:digits[i]+=1# for j in range(i+1, n):# digits[j] = 0# 内置切片置0digits[i+1:]=[0]*(len(digits)-i-1)returndigits# 遍历后,数组中的元素全为9# digits = [0]* (n+1)# digits[0] = 1# return digitsreturn[1]+[0]*len(digits)

运行结果

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询