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

力扣题解析

今天这段代码实现了数组形式的整数加1

虽然是简单题但是学会很有用处。

题目:给定一个表示大整数的整数数组digits,其中digits[i]是整数的第i位数字。这些数字按从左到右,从最高位到最低位排列。这个大整数不包含任何前导0

将大整数加 1,并返回结果的数字数组。

  • 遍历起点:从数组最后一位(个位)开始,逐步向前检查。
  • 非9的处理:若当前位≠9,直接+1后返回原数组(无需后续操作)。
  • 连续9的处理:若当前位=9,将其置为0(模拟进位),继续向前遍历。
  • 全9的特殊场景:若遍历完所有位仍未返回(即数组全为9),则新建长度+1的数组,首位设为1(如[9,9][1,0,0])。

2. 获取数组长度

  • int length = digits.length;
  • 作用:记录输入数组的长度,避免后续重复调用digits.length,提升效率。
  • 3. 反向遍历数组
  • while (--length >= 0) {
  • 作用:从数组**最后一位(个位)开始向前遍历(--length先减后判断,等价于从length-1开始)。
  • 遍历逻辑:依次检查个位→十位→百位…,处理进位问题。
  • 作用:检查当前位是否需要进位:
    • 若≠9:直接+1即可,无需进位;
    • 若=9:需置为0并继续向前进位。
  • 逻辑:新建长度+1的数组,首位设为1(其余默认0),返回结果(如[9,9,9][1,0,0,0])。

该代码的结果:

输入数组输出结果场景说明
[1,2,3][1,2,4]末尾非9,直接加1
[1,9,9][2,0,0]末尾连续9,进位到百位
[9,9,9][1,0,0,0]全9场景,扩容数组并补1
  • 时间复杂度:O(n)。最坏情况遍历整个数组(如全9场景),n为数组长度。
  • 空间复杂度:O(1)(非全9场景,复用原数组)或O(n)(全9场景,需新建数组)。
http://www.cnnetsun.cn/news/68761.html

相关文章:

  • Flutter 状态管理终极指南(一):从 setState 到 Riverpod 2.0
  • Symfony 8路由缓存机制揭秘:如何让应用加载快如闪电
  • 基于STM32智能营养称系统的设计与实现_352
  • PHP 8.6升级必看:5个关键兼容性检测步骤,避免生产环境崩溃
  • 医疗行业PHP数据备份最佳实践(20年专家亲授方案)
  • 4、Gateway
  • 泛型实例化陷阱频发?资深架构师总结的6大避坑法则
  • hot100 2.字母异位词分组
  • R语言Cox回归避坑指南(临床数据建模常见错误TOP5)
  • 是德 N9041B UXA 频谱分析仪在真空环境完成卫星信号分析
  • 用是德DSOX1204A示波器快速捕捉与调试信号的实用指南
  • 连接器EMC测试不过关?5步定位干扰源头,快速通过认证
  • 为什么90%的物联网项目卡在部署阶段?真相令人震惊
  • 你还在用线性回归预测产量?R语言随机森林模型已全面超越
  • Laravel 13发布后必须掌握的技能:多模态任务队列的7种高级用法
  • some 知识点 knowledge
  • Gson和Jackson是怎么解决泛型实例化的?源码级剖析告诉你答案
  • 重新发现深圳,找个咖啡/羽毛球搭子一起探索城市的AB面
  • 请求拦截不再难,Symfony 8拦截器实现原理与最佳实践全解析
  • RAG文本分块策略:优化LLM的知识访问效率
  • 桌面那么点大,性能它偏要狂
  • 基于51单片机的智能水表系统设计
  • 基于单片机的交通控制系统
  • 永磁同步电机PMSM 5 - 7次谐波注入降低转矩脉动实践
  • 万字长文梳理如何扩展大语言模型的上下文长度:算法原理、实现方法与适用场景(RoPE、YaRN、优化Attention、RAG等)
  • 特征提取+概率神经网络 PNN 的轴承信号故障诊断模型
  • 单元测试基础知识,面试用得上...
  • 美国国务院恢复 Times New Roman 字体
  • 【万字长文】LLM+KG:大模型与知识图谱融合的黄金时代,技术前景与实现路径全解析!
  • ionet 25.2 发布