【软工方法论22】代码重构原则与实践
2026/6/26 3:18:00
-核心思想:通过模拟手算加法来实现 -具体思路(核心逻辑): -逆序定位第一个非 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)