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

leetcode刷题日记——两数相加

[ 题目描述 ]:
在这里插入图片描述
[ 思路 ]:

  • 通过两个循环将 l1, l2存储的数字读出,然后求和,再将结果存储链表中
  • 由此发了一个问题,结果溢出,如果使用更大的 long 类型,后续不出所料,仍然超出
  • 所以只能转换思路
    在这里插入图片描述
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {int num1=0,num2=0,res=0,index=0;while(l1){num1=num1+l1->val*pow(10,index++);l1=l1->next;}index=0;while(l2){num2=num2+l2->val*pow(10,index++);l2=l2->next;}res=num1+num2;struct ListNode* head=(struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* rear=head;if(res==0){rear->next=(struct ListNode*)malloc(sizeof(struct ListNode));rear=rear->next;rear->val=0;}else{while(res!=0){rear->next=(struct ListNode*)malloc(sizeof(struct ListNode));rear=rear->next;rear->val=res%10;res/=10;}}rear->next=NULL;return head->next;
}
  • 既然不能一次性存储所有结果,那么就只能模拟加法器,一位一位的计算
  • 运行如下
    在这里插入图片描述
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {int carry=0;struct ListNode* head=(struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* rear=head;while(l1 || l2 || carry!=0){int num1=0,num2=0;if(l1){num1=l1->val;l1=l1->next;}if(l2){num2=l2->val;l2=l2->next;}carry+=num1+num2;rear->next=(struct ListNode*)malloc(sizeof(struct ListNode));rear=rear->next;rear->val=carry%10;carry/=10;}rear->next=NULL;return head->next;
}

[ 官方题解 ]:

  • 方法一:模拟,具体思路同上

相关文章:

  • C++20 小语法
  • Dockerfile 编写根据需求阶段而出现
  • 【Redis】基础4:作为分布式锁
  • 克隆/备份后的虚拟机无法获取IP地址(FQA)
  • 微软编程一小时:探索 AI 世界
  • Prometheus 实战教程-搭建 Prometheus 环境
  • 现代c++获取linux系统指定网络接口的ip地址
  • 数字化时代软件检测机构如何保障软件质量、安全与合规性?
  • 【Linux实践系列】:进程间通信:万字详解命名管道实现通信
  • NGINX ngx_http_addition_module 模块响应体前后注入内容
  • NVIDIA新模型DAM-3B:描述一切,图像视频局部描述新突破
  • vue3+ts+pinia+vite实战后台管理系统一(框架搭建和配置)
  • IBM Engineering Lifecycle Management 创建用户
  • 迈瑞医疗:国际业务增长21.28% 发展中国家成重要增长引擎
  • C语言中的指针详解
  • 单元测试总结
  • Vue3 项目中 Pinia 与 JavaScript 循环依赖问题深度解析
  • 【前缀和 差分数组 数论】P6042 「ACOI2020」学园祭|省选-
  • 经典数仓架构深度解析与演进:从离线处理到新型架构对比
  • 为什么执行了删除语句后mysql内存无变化?
  • 卸任兰大校长后,严纯华院士重返北大作报告
  • 打工人的“小长假模式”,已经迫不及待地开启了
  • “自己生病却让别人吃药”——抹黑中国经济解决不了美国自身问题
  • 港理大公布多项AI+医工成果,助港建设国际医疗创新枢纽
  • 第二艘国产大型邮轮实现坞内起浮,重点强化邮轮供应链本土化建设
  • 【社论】优化限购限行,激发汽车消费潜能