力扣(LeetCode) 66: 加一 - 解法思路

问题概述

给定一个由整数数组表示的大整数 digits,将其加一并返回结果数组。

解法 1:简单方法

工作原理

从右到左处理数字。如果数字小于 9,则加一并返回。否则,将其设为 0 并继续。如果所有数字都是 9,则在前面添加新数字:

python 复制代码
class Solution:
    def plusOne(self, digits):
        for i in range(len(digits) - 1, -1, -1):
            if digits[i] < 9:
                digits[i] += 1
                return digits
            else:
                digits[i] = 0
        
        return [1] + digits

复杂度分析

  • 时间复杂度: O(n) - 最坏情况当所有数字都是 9 时需要扫描整个数组
  • 空间复杂度: O(1) - 不包括输出数组,只使用常数额外空间

何时使用

  • 推荐 - 简单高效
  • 处理所有情况,包括进位传播
  • 当不需要进位时提前返回

对比

方法 时间 空间 最佳适用
简单方法 O(n) O(1) 大多数情况,逻辑清晰

总结

关键思路是从右到左处理数字。当数字小于 9 时,可以立即加一并返回(无进位)。当数字是 9 时,将其设为 0 并继续(进位传播)。如果所有数字都是 9,需要在前面添加新数字 [1]。这个解法高效地实现了这一逻辑,时间复杂度为 O(n),空间复杂度为 O(1)。

相关推荐
心中有国也有家8 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
前端若水8 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
绝知此事8 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
碧海银沙音频科技研究院8 小时前
通话AEC与语音识别AEC的软硬回采链路
深度学习·算法·语音识别
涛声依旧-底层原理研究所8 小时前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
csdn_aspnet9 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
fantasy_arch9 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
熊猫_豆豆9 小时前
广义相对论水星近日点进动完整详细数学推导
python·天体·广义相对论
web3.08889999 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python