当前位置: 首页 > news >正文

加一 - 题目笔记

📝 算法笔记:66. 加一 (Plus One)

1. 题目描述

给定一个由整数数组表示的非负大整数,数组每个元素存一个数字,最高位在数组首部。将该数加 1并返回结果数组。

  • 输入:digits = [1, 2, 9]

  • 输出:[1, 3, 0]

2. 核心思路:贪心遍历 (Greedy Approach)

这道题的核心在于处理进位。由于只加 1,进位只会发生在当前数字是9的情况下。

  • 从后向前遍历数组:

    1. 如果当前位< 9:直接加 1 并返回数组(因为不会产生更高的进位)。

    2. 如果当前位== 9:将当前位设为0,继续循环处理前一位。

  • 特殊情况:如果循环结束仍未返回(例如输入为[9, 9, 9]),说明产生了最高位进位。此时直接在数组最前面补一个1即可。

3. 代码实现 (Python)

Python

class Solution: def plusOne(self, digits: List[int]) -> List[int]: n = len(digits) # 1. 从低位到高位反向遍历 for i in range(n - 1, -1, -1): if digits[i] < 9: digits[i] += 1 # 找到第一个不需进位的数,加 1 return digits # 关键:直接返回结果 # 如果是 9,则该位变 0,继续循环处理前一位 digits[i] = 0 # 2. 如果循环走完还没返回,说明是 99...9 的情况 # 此时 digits 已全变成 0,只需在最前面加个 1 return [1] + digits

4. 复杂度分析

  • 时间复杂度:$O(n)$

    • 最好情况:末尾不是 9,只需 $O(1)$。

    • 最坏情况:全是 9,需要遍历一遍整个数组,$O(n)$。

  • 空间复杂度:$O(1)$ 或 $O(n)$

    • 如果不算返回数组的空间,我们在原数组上操作,是 $O(1)$。

    • 如果是全 9 情况,需要额外构造一个长度为 $n+1$ 的结果,空间复杂度为 $O(n)$。

5. 进阶思考:为什么这是最优解?

  1. 避开了数值转换:不需要先将数组转成整数(Python 虽然支持大整数,但在其他语言如 C++ 中会溢出),直接操作数组鲁棒性更强。

  2. 提前终止:一旦遇到不需要进位的位,立即return,避免了无效的遍历。

  3. 内存效率:相比使用链表,数组在连续内存中处理速度更快(CPU 缓存友好),且不需要额外的指针空间。

http://www.jsqmd.com/news/497632/

相关文章:

  • MySQL主键设计原则与自增ID的潜在问题分析
  • 自动化测试常用函数(元素的定位)
  • 技术分享-日志链路追踪
  • 龙虾智能体不是玩具!国家安全部提醒:这3个防护步骤必做
  • (独自升级Lv.1)C++基础面试题
  • 从零学网安第四期--在kali里面制作木马程序并实现远程控制
  • 238. 除了自身以外数组的乘积
  • 自动驾驶购物车测试:超市里的交通拥堵难题——软件测试工程师的实战解构
  • 《MySQL数据库基础》4. 数据类型
  • 别再花冤枉钱了!强推10款国内免费降AI神器,一键破解论文AIGC难题(附传送门)
  • 基于Vue.js的实验室耗材管理系统设计与实现 毕业设计源码+论文+PPT
  • 基础 语法
  • 机器人关节润滑脂如何选择?工程师必须了解的技术指标
  • 数组指针:高效操作多维数组
  • MATLAB与CST联合仿真:快速建模超表面阵列,涡旋波生成与雷达散射优化
  • 分享两道关于运算符号的题目
  • 全息医疗诊断测试:医生在空中操作器官模型的精度验证
  • 嘎嘎降AI升级双引擎技术,9大检测平台达标率超99%
  • Java面试八股文问答集——大厂必备含金量20题
  • 挖洞必看!40 个漏洞挖掘姿势吐血整理,小白也能快速挖到洞
  • ASP.NET公交车管理系统的实现与设计(源代码+论文)
  • 基于springboot的作业批改系统设计与实现 毕业设计源码+论文+PPT
  • TPC标准基准测试:如何评估并建立TDengine时序数据库的性能基线
  • 【苍穹外卖|项目日记】 第二天
  • Day2 java的基础语法
  • 论文降AIGC太难?这10个国内免费降AI工具一键搞定降重(附全套传送门)
  • 第六:Jmeter - 从入门到精通 - 创建网络测试计划
  • (部分转载)电视端多邻国专用浏览器:轻量化+大屏适配+遥控器直接用
  • RAG核心技术全解析:Embedding选型、面试高频问题与Rerank重排序原理
  • 科学备孕——吃点好的,生健康宝宝! - 企业推荐官【官方】