LeetCode 66. 加一(C语言)| 数组反转 + 模拟进位 📅 发布时间:2026/7/12 9:01:50 👁️ 浏览次数: 一、题目描述给定一个表示大整数的整数数组digits其中digits[i]是整数的第i位数字。这些数字按从左到右从最高位到最低位排列。请在该整数上加 1并返回结果数组。示例 1输入digits [1,2,3] 输出[1,2,4] 解释123 1 124示例 2输入digits [4,3,2,1] 输出[4,3,2,2] 解释4321 1 4322示例 3输入digits [9] 输出[1,0] 解释9 1 10提示1 digits.length 100 0 digits[i] 9 digits 不包含任何前导 0二、解题思路因为数组是高位 → 低位存储例如[1,2,3] → 123如果直接处理加法需要从后往前遍历。这里采用另一种思路先反转数组 → 从低位开始加 → 再反转回来这样逻辑更接近我们平时的加法计算。步骤一反转数组例如原数组 [1,2,3] 反转后 [3,2,1]此时最低位在前面。步骤二执行加一3 1 4得到[4,2,1]如果遇到99 1 10就会产生进位9 → 0 carry 1继续向高位传播。步骤三处理全是 9 的情况例如[9,9,9]反转后[9,9,9]加一过程91 → 0 91 → 0 91 → 0最后还有进位[0,0,0] 1需要扩展数组[0,0,0,1]步骤四再反转回来[0,0,0,1] ↓ [1,0,0,0]得到最终结果。三、C语言代码实现#include stdlib.h // 反转数组 void reverse(int* nums, int size) { int left 0; int right size - 1; while(left right) { int temp nums[left]; nums[left] nums[right]; nums[right] temp; left; right--; } } int* plusOne(int* digits, int digitsSize, int* returnSize) { // 1. 反转数组 reverse(digits, digitsSize); int carry 1; // 2. 从最低位开始加 for(int i 0; i digitsSize; i) { int sum digits[i] carry; digits[i] sum % 10; carry sum / 10; if(carry 0) break; } // 3. 如果还有进位 if(carry) { int* result (int*)malloc(sizeof(int) * (digitsSize 1)); for(int i 0; i digitsSize; i) result[i] digits[i]; result[digitsSize] 1; reverse(result, digitsSize 1); *returnSize digitsSize 1; return result; } // 4. 再反转回来 reverse(digits, digitsSize); *returnSize digitsSize; return digits; }四、复杂度分析时间复杂度O(n)反转数组 O(n)遍历数组 O(n)总体仍然是O(n)空间复杂度O(1)只有在全为 9时才需要新数组[9,9,9] → [1,0,0,0]五、总结这道题本质就是模拟十进制加法的进位过程。核心规律当前位 (当前位 进位) % 10 进位 (当前位 进位) / 10常见类似题目2. 两数相加链表进位415. 字符串相加989. 数组形式的整数加法这些题的本质都是从低位向高位处理进位问题。
运维岗干久了会怎么样?为什么说运维工程师做不长久,做两年就赶快转转岗? 很多从事IT网络运维工作的年轻小伙伴都会有个疑问,自己做的工作很杂似乎很基础,而且重复很多年,究竟有没前途。 作为过来人告诉一个总结:前途大小,工资多少跟你的岗位和职称资质没有多少关系,跟你的经验技能… 2026/7/9 17:45:57
【嵌入式Linux】应用开发基础总结 文章目录 一切源于原厂的SDK。理解运行时,和编译时。 #mermaid-svg-8zeGwSQAO0EujlNN{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to… 2026/7/11 2:30:41
React 项目运用 RxJS 设置节流 RxJS 核心概念 一小时入门RxJS,中文教学放心适用,讲解非常棒 按钮组: <button nz-button nzType"primary" style"cursor:pointer !important; margin-bottom: 4px;" (click)"throttleClick(flag1, 2000, btnFun… 2026/7/10 8:04:20
HarmonyOS运动健康——训练页面交互与动作详情 从训练页面点击一个动作,跳转到动作详情页。这个流程涉及两个页面的数据传递和交互衔接:WorkoutPage负责展示动作列表和训练计划选择,ExerciseDetail负责展示单个动作的完整信息。两个页面通过路由参数连接——WorkoutPage传入动作ID… 2026/7/12 9:00:28
code0 glm-5 企业实战:企业级 AI 网关怎么建,模型又该怎么分发 大模型真正进入企业应用之后,很多问题就不再是“能不能把某个模型 API 调通”这么简单了。更现实的问题是:多个团队、多个系统、多个业务场景同时要用模型,企业该怎么保证它们用得安全、稳定,而且成本和权限都能管得住?… 2026/7/12 8:58:27
2026 中小型 B2B 企业业财一体化 ERP 榜单|5 款主流产品适配性盘点 在国内 B2B 批发、代理经销、项目型贸易行业持续精细化发展的背景下,中小 B2B 企业数字化转型已成刚需。国内超 7 成中小型 B2B 商贸、代理商企业普遍面临共性管理痛点:业务与财务系统相互割裂,传统 ERP 要么私有化投入高昂、运维繁琐&#x… 2026/7/12 8:56:26
AI视频生成提示词工程:从单帧完美到时序连贯的实践指南 第一次看到 Seedance 2.5 生成的视频时,我有点不敢相信这是 AI 直接输出的结果——不是因为它有多完美,而是因为它的镜头语言和角色一致性已经接近一个初级剪辑师手动拼接的水平。一个简单的提示词输入后,AI 能自动切分镜头、安排运镜、保持角… 2026/7/12 8:56:26
AWS CLI 2.x 下载 OpenAlex 340GB 快照:3步命令与断点续传方案 AWS CLI 2.x 高效下载 OpenAlex 340GB 快照的完整指南对于需要本地部署 OpenAlex 数据集的研究人员和数据工程师来说,如何稳定高效地下载这个庞大的数据集是一个关键挑战。本文将详细介绍使用 AWS CLI 2.x 工具下载 OpenAlex 340GB 快照的完整流程,包括安… 2026/7/12 8:54:26
需求分析实战:从1个订单免运费案例拆解出6个关键业务规则 需求分析实战:从1个订单免运费案例拆解出6个关键业务规则 当产品经理接到"订单满50美元免运费"的需求时,新手往往会直接进入原型设计阶段,而资深从业者则会先画出一个巨大的问号。这个看似简单的业务规则背后,隐藏着至少… 2026/7/12 8:54:26
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14