稀碎从零算法笔记Day22-LeetCode:
题型:链表
链接:2. 两数相加 - 力扣(LeetCode)
来源:Le'e't
题目描述
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
题目样例
示例 1:

输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807.
示例 2:
输入:l1 = [0], l2 = [0] 输出:[0]
示例 3:
输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] 输出:[8,9,9,9,0,0,0,1]
提示:
- 每个链表中的节点数在范围
[1, 100]内 0 <= Node.val <= 9- 题目数据保证列表表示的数字不含前导零
题目思路
少有的【简单的中等题】
样例很清晰,感觉就是链表版的模拟各数累加。
笔者这边直接在原链表上进行操作,如果题目要求【不改变原链表结构】,可以自己开一个新的链表。
为了便于操作,笔者这里强行让链表1为长链表。然后可以分情况:①等长时 ②不等长时。
考虑到【进位】,可以创一个int来存一下,但要记得【进位加完一次后归零】。
等长时:遍历两个链表,指针同步走。如果最终加完后还有进位,需要创一个新结点来作为尾结点。(笔者这里事先接收了尾指针,方便操作)
不等长时,就是先按着等长来走。短的链表走到头后长链表自己一个人走(我哭死)
C++代码
笔者已经哭死了,所以上code
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode *temp1 = l1,*temp2 = l2;int len1=0,len2=0;int i=0,j=0;while(temp1 != NULL) {len1++;temp1 = temp1->next;}while(temp2 != NULL) {len2++;temp2 = temp2->next;}//保证l1一定是长链表 if(len1 < len2){swap(len1,len2);swap(l1,l2);}int sum=0;ListNode *ans = l1;ListNode * us;while(l1 != NULL &&l2 != NULL){if(l1 ->next == NULL)us = l1;int tempa=l1->val,tempb=l2->val,tempc=sum;l1->val = (l1->val + l2->val + sum)%10;sum = 0;sum+=((tempa+tempb+tempc)/10);l1 = l1->next;l2 = l2->next;}while(l1 != NULL){ if(l1 ->next == NULL)us = l1;int tempa=l1->val,tempc=sum;l1->val = (l1->val + sum)%10;sum=0;sum+=(tempa+tempc)/10;l1 = l1->next; }if(l1 == NULL && sum !=0){ListNode * fin = new ListNode(sum);us->next = fin;}return ans;}
};
结算页面
有待优化,感觉冗余的代码有些多。

相关文章:
稀碎从零算法笔记Day22-LeetCode:
题型:链表 链接:2. 两数相加 - 力扣(LeetCode) 来源:Leet 题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 …...
Nacos下载和安装
(1)下载地址和版本 下载地址:Releases alibaba/nacos GitHub 解压在没有中文及空格的文件夹 (2)启动nacos服务 在bin目录下,打开命令行,输入 启动命令:sh startup.sh -m standalone - Linux/Unix/Mac …...
pandas简介(python)
pandas是什么 Pandas 是一个开源的第三方 Python 库,从 Numpy 和 Matplotlib 的基础上构建而来,享有数据分析“三剑客之一”的盛名(NumPy、Matplotlib、Pandas)。Pandas 已经成为 Python 数据分析的必备高级工具,它的…...
个人网站制作 Part 13 添加搜索功能[Elasticsearch] | Web开发项目
文章目录 👩💻 基础Web开发练手项目系列:个人网站制作🚀 添加搜索功能🔨使用Elasticsearch🔧步骤 1: 安装Elasticsearch🔧步骤 2: 配置Elasticsearch🔧步骤 3: 创建索引 …...
Springboot+vue的仓库管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
演示视频: Springbootvue的仓库管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层…...
vue3 + vite 实现一个动态路由加载功能
假设后端返回的格式是这样子 {"menu": [{"path": "/admin","name": "adminLayout","redirect": "/admin/index","componentPath": "/layout/admin/index.vue","children&quo…...
【征稿进行时|见刊、检索快速稳定】2024年区块链、物联网与复合材料与国际学术会议 (ICBITC 2024)
【征稿进行时|见刊、检索快速稳定】2024年区块链、物联网与复合材料与国际学术会议 (ICBITC 2024) 大会主题: (主题包括但不限于, 更多主题请咨询会务组苏老师) 区块链: 区块链技术和系统 分布式一致性算法和协议 块链性能 信息储存系统 区块链可扩展性 区块…...
若依jar包运行脚本,从零到一:用Bash脚本实现JAR应用的启动、停止与监控
脚本使用说明: 启动应用:sh app.sh start停止应用:sh app.sh stop检查应用状态:sh app.sh status重启应用:sh app.sh restart 注意事项: 请确保你的系统上安装了 Java 环境,并且 ruoyi-admin…...
Unix运维_FreeBSD-13.1临时环境变量设置(bin和include以及lib)
Unix运维_FreeBSD-13.1临时环境变量设置(bin和include以及lib) 在 FreeBSD 系统上设置用户环境变量可以通过编辑用户的 Shell配置文件 来实现。 cshrc 与 csh_profile 的区别: cshrc: 每个脚本执行前都执行一遍这个脚本。 csh_profile: 根据不同使用者用户名, 会先去其 home…...
Apache Dolphinscheduler - 无需重启 Master-Server 停止疯狂刷日志解决方案
记录的是一个 3.0 比较难搞的问题,相信不少使用过 3.0 的用户都遇到过 Master 服务中存在一些工作流或者任务流一直不停的死循环的问题,导致疯狂刷日志。不过本人到现在也没找到最关键的触发原因,只是看到一些连锁反应带来的结果…… 影响因素…...
竞争优势:大型语言模型 (LLM) 如何重新定义业务策略
人工智能在内容创作中的突破 在当今快节奏的商业环境中,像 GPT-4 这样的大型语言模型 (LLM) 不再只是一种技术新颖性; 它们已成为重新定义跨行业业务战略的基石。 从增强客户服务到推动创新,法学硕士提供了企业不容忽视的竞争优势。 1. 加强…...
Spring AOP和AspectJ AOP区别
Spring AOP(Aspect-Oriented Programming)和 AspectJ AOP 是两种不同的 AOP 实现方式,它们在实现上有一些区别。下面是它们之间的主要区别: 基于代理 vs 字节码增强: Spring AOP: Spring AOP 是基于代理的…...
FREERTOS信号量详解
信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步,资源管理其实就是用变量来标记现有资源的数量,任务同步其实就是用标志位来控制任务的先后执行顺序,这些概念在操作系统中以及裸机开发中都有所涉及。 FreeR…...
每天学习一个Linux命令之vim
每天学习一个Linux命令之vim Vim是一款功能强大的文本编辑器,在Linux系统中广泛使用。本篇博客将介绍一些常用的Vim命令及其选项,帮助您更好地使用Vim进行文本编辑。 命令及选项 以下是Vim的常用命令及其可用选项: 1. 打开文件 $ vim fi…...
linux环境部署
war包环境 在Linux系统上部署准备war包环境 查看linux当前版本和系统类型 [rootlocalhost ~]# uname -a Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linuxlinux 打包文件夹 使用tar命令࿱…...
上位机图像处理和嵌入式模块部署(qmacvisual图像预处理)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 不管大家是在读书的时候学习的图像处理,还是在后来的工作中,重新学习了图像处理,相信大家对图像预处理的概念并…...
C语言内存函数详解
文章目录 前言一、memcpy函数(内存拷贝函数)二、memmove重叠拷贝函数三.memset内存设置函数四.memcmp内存比较函数总结 前言 我们之前按学习了C语言标准库中提供了一系列的字符和字符串库函数,接下来我们就学习一下关于内存相关的一些函数。…...
详解Redis的持久化RDB和AOF
Redis的持久化是将内存中的数据同步到硬盘的过程 具体来说,Redis支持两种主要的持久化方式:RDB 和 AOF。 RDB(Redis Database) 简介 默认持久化方式 RDB会将内存中的数据快照保存到磁盘上的一个二进制文件中。这个文件包含了…...
详细分析Js中的Promise.all基本知识(附Demo)
目录 1. 基本知识2. Demo3. 实战 1. 基本知识 Promise.all 是 JavaScript 中的一个方法,它接受一个由 Promise 对象组成的数组作为参数,并在所有 Promise 对象都变为 resolved(已完成)状态时才返回一个新的 Promise 对象…...
const,static深度总结——c++穿透式分析
前言;c类和对象的知识点中除了几种默认函数, 比较重要的还有使用const和static修饰成员相关知识点。const在c中特性很简单。 但是在使用中, 比较容易疏忽大意出现问题。 static特性也很简单, 但是比起const来要直接的多。 在使用中…...
Splatoon插件架构革新:FFXIV高难度副本智能导航与机制破解技术实现
Splatoon插件架构革新:FFXIV高难度副本智能导航与机制破解技术实现 【免费下载链接】Splatoon An accessibility tool to assist in gameplay and compensate for human imperfections. 项目地址: https://gitcode.com/gh_mirrors/spl/Splatoon Splatoon作为…...
告别官方Demo!用ESP32-CAM+Arduino IDE打造稳定人脸识别门禁(含SD卡存储避坑指南)
ESP32-CAM人脸识别门禁实战:从Flash崩溃到SD卡稳定存储的完整方案 当你在深夜调试ESP32-CAM人脸识别项目时,突然发现辛苦录入的20组人脸数据在重启后全部消失——这种崩溃体验我太熟悉了。官方Demo的Flash存储方案就像个定时炸弹,而本文将带你…...
LabVIEW状态机实战:从3个按钮的Demo到数据采集系统的UI状态管理
LabVIEW状态机工程化实战:从Demo到数据采集系统的架构升级 在工业测控领域,状态机架构是LabVIEW开发者必须掌握的核心理念。许多工程师虽然通过基础教程学会了三按钮Demo的实现,却在面对真实的数据采集系统时陷入架构混乱的困境。本文将揭示如…...
subr_autoconf.c 深度解析:BSD 内核自动配置核心模块
subr_autoconf.c 深度解析:BSD 内核自动配置核心模块 这是 OpenBSD/NetBSD 内核的自动配置(Autoconfiguration)核心实现文件,是内核硬件枚举、设备驱动匹配、设备树构建、热插拔/卸载的中枢代码。我会从核心作用、工作原理、语法规范、上下游依赖、关键数据结构五个维度完…...
如何用免费工具突破8大网盘下载限速:LinkSwift直链解析助手终极指南
如何用免费工具突破8大网盘下载限速:LinkSwift直链解析助手终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移…...
SolidEdge许可证文件关键参数配置解析与分点
SolidEdge许可证文件关键参数配置解析及分点假设说你正在为SolidEdge的许可证占用发愁,要不然项目上线前总在等许可,那你一定并不是孤例。我跟你讲这边一年多来,几乎每个月都在处理类似的紧急劳驾求,“又抢不到软件许可了”&#…...
从U-Net分割到StyleGAN生成:图解转置卷积如何成为CV‘放大镜’
转置卷积:CV任务中的特征图放大艺术 在计算机视觉领域,我们常常需要将低分辨率特征图"放大"至高分辨率空间——无论是让分割网络恢复原始图像尺寸,还是让生成模型从潜空间构建逼真图像。传统插值方法如同使用固定模具,而…...
Qwen2.5-VL-7B-Instruct实操手册:自定义提示词模板与角色设定技巧
Qwen2.5-VL-7B-Instruct实操手册:自定义提示词模板与角色设定技巧 1. 引言:从“能用”到“好用”的关键一步 你可能已经体验过Qwen2.5-VL-7B-Instruct这个强大的本地视觉助手了。上传一张图片,问它“图片里有什么”,它就能给你一…...
DLSS Swapper终极指南:如何轻松升级游戏画质技术版本
DLSS Swapper终极指南:如何轻松升级游戏画质技术版本 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏内置的DLSS版本过时而烦恼吗?是否希望在不等待游戏官方更新的情况下,…...
DeEAR在客服质检中的落地应用:基于wav2vec2的语音情感多维评估实战案例
DeEAR在客服质检中的落地应用:基于wav2vec2的语音情感多维评估实战案例 1. 引言:客服质检中的情感识别挑战 在客服行业,传统的质检方式主要依赖人工抽查录音,不仅效率低下,而且难以客观评估服务过程中的情感表达。一…...
