news 2026/10/18 5:24:05

LeetCode 989.数组形式的整数加法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 989.数组形式的整数加法

一、 题目描述


二 、解题思路

这题不能转成整数再相,因为数据范围太大了,会发生溢出

  • 解释
    num.length可以到 10^4,也就是说num可以表示一个一万位的整数。这个数远远超出long long(约 19 位十进制数)的表示范围。
    故必须用模拟竖式加法的方式,逐位处理。
  • 核心考点
    大整数加法的数组模拟

三、代码

/** * Note: The returned array must be malloced, assume caller calls free(). */int*addToArrayForm(int*num,intnumSize,intk,int*returnSize){intk1=k;intlen=0;intret=0;intadd=0;//表示进位intaSize=numSize-1;intkSize=0;// 1. 计算 k 的位数while(k1>0){k1/=10;len++;}// 2. 取 numSize, k的位数 的最大值 作为循环次数if(numSize>len){len=numSize;}// 3. 申请结果空间,多 1 位用于最高位进位int*tmp=(int*)malloc(sizeof(int)*(len+1));// 4. 从低位到高位逐位相加while(len--){inta=0;// 取出 num 当前位if(aSize>=0){a=num[aSize];aSize--;}// 当前位相加:num位 + k最低位 + 进位ret=a+k%10+add;k/=10;// 处理进位if(ret>=10){ret-=10;add=1;}else{add=0;}// 先存低位,最后再反转tmp[kSize]=ret;kSize++;}// 5. 最高位还有进位,补 1if(add==1){tmp[kSize]=1;kSize++;}// 6. 反转数组for(intleft=0,right=kSize-1;left<=right;left++,right--){intt=tmp[left];tmp[left]=tmp[right];tmp[right]=t;}*returnSize=kSize;returntmp;}

四、解释代码

1.取最长位数

if(numSize>len){len=numSize;}

它决定了循环次数,加法必须从最低位加到最高位。如果两个加数长度不同,那么循环次数必须至少等于较长的那个数的位数,否则高位会被漏掉。

2.分配结果空间

int*tmp=(int*)malloc(sizeof(int)*(len+1));

两个数相加,结果最多比最长的加数多一位,所以是len+1。

3.处理[1,2]+1234这种情况

inta=0;if(aSize>=0){a=num[aSize];aSize--;}

因为aSize的长度比k小,所以后面aSize–之后会变成负,把aSize为负数的部分规定都为0。

4.处理最高位进位

if(add==1){tmp[kSize]=1;kSize++;}

最高位进位只可能是1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 5:23:41

基于YOLOv8的护目镜佩戴识别检测系统:从模型训练到PyQt5部署实践

在工业安全领域干了这么多年&#xff0c;安全帽、反光衣、护目镜这类佩戴检测项目我前前后后做过将近十个&#xff0c;但每次接到新需求还是会踩到一些意想不到的坑。这次分享一个完整的“基于YOLOv8的护目镜佩戴识别检测系统”&#xff0c;包含深度学习模型训练、自制数据集处…

作者头像 李华
网站建设 2026/10/18 5:23:00

前端也能玩转模型微调:从LoRA到浏览器端侧部署全指南

前端听完“与我无瓜”&#xff1f;我劝你先别急着关页面做前端的兄弟&#xff0c;听到“模型微调”&#xff08;Fine-tuning&#xff09;这个词&#xff0c;DNA是不是立马就动了——脑子里浮现的是满屏的Python、论文、GPU集群&#xff0c;然后默默吐槽一句“这跟我有啥关系”&…

作者头像 李华
网站建设 2026/10/18 5:22:44

用DeepSeek拆解顶刊论文逻辑:从提示词到可复用写作技术

简介&#xff1a;本资源是一份面向高校师生、科研人员及学术写作者的AI辅助论文写作实战指南&#xff0c;聚焦DeepSeek大模型在论文选题、结构设计、逻辑拆解、格式规范与创新表达等关键环节的深度应用。资源以1个精炼的Word文档&#xff08;.docx&#xff0c;14KB&#xff09;…

作者头像 李华
网站建设 2026/10/18 5:21:59

感知算力博弈 | 纯视觉 VS 激光雷达融合谁更消耗算力,受融合架构、数据预处理、模型规模、时空对齐共同约束,理清车端真实算力开销误区

目录 一、前言 二、两套感知方案完整链路拆解 2.1 纯视觉 BEV 链路(LSS/BEVFormer) 2.2 激光雷达 + 视觉融合链路 三、影响算力开销五大关键因素 3.1 融合架构是第一决定性因素 3.2 激光雷达本身参数 3.3 时空对齐与置信度博弈开销 3.4 时序记忆、世界模型规模 3.5…

作者头像 李华
网站建设 2026/10/18 5:19:56

数控机床编程基础与坐标系:编程六步流程、程序号/程序段/程序字格式,与右手定则下车床铣床XYZ轴判定(含考点)

本文整理《数控机床编程基础与坐标系》一课&#xff0c;是数控技术概论&#xff08;数控机床概念、工作流程、五大组成、点位/直线/轮廓、开环/半闭环/闭环&#xff09;的后续&#xff0c;正式进入数控编程章节。前半部分简要复习数控机床按运动轨迹、伺服控制原理、工艺方法以…

作者头像 李华