力扣热门100题刷题笔记 - 2.两数相加

力扣热门100题 - 2.两数相加

题目链接:2.两数相加

题目描述:

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

示例:

在这里插入图片描述

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
输入:l1 = [0], l2 = [0]
输出:[0]
输入: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
题目数据保证列表表示的数字不含前导零2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案

解题思路 递归(深度遍历):

在每一步递归中,计算当前节点的和,将和加入新的节点,并判断是否有进位。如果有进位,则在下一次递归中加上进位。
使用变量 a 来表示进位。在函数签名中将进位作为参数传递。
通过判断 l1 和 l2 是否为 null 来处理链表长度不同的情况。
当 l1 l2 都为空时 需要注意是否有进位需要添加时间复杂度:O(max(l1,l2))

代码:

class Solution {ListNode ans;public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head = new ListNode(0);ans = head;process(l1, l2, 0);return head.next;}private void process(ListNode l1, ListNode l2, int a) {if (l1 == null && l2 == null) {if (a > 0) ans.next = new ListNode(a);return;}int num1 = l1 == null ? 0 : l1.val;int num2 = l2 == null ? 0 : l2.val;int sum = num1 + num2 + a;ans.next = new ListNode(sum % 10);a = sum / 10;ans = ans.next;process(l1 == null ? null : l1.next, l2 == null ? null : l2.next, a);}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图书|基于Springboot的图书管理系统设计与实现(源码+数据库+文档)

图书管理系统目录 目录 基于Springboot的图书管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、个人中心 2、管理员管理 3、用户管理 4、图书出版社管理 5、公告类型管理 6、所在书架管理 7、图书类型管理 8、论坛管理 9、公告信息管理 10、图书信…

【数据结构】(分治策略)中位数的查询和最接近点对问题

中位数查询&#xff1a; 寻找一组字符串中第k小的数&#xff0c;返回其值和下标。 不可以有重复值&#xff08;在缩小规模的时候&#xff0c;会导致程序死循环&#xff09; 相对位置的转换体现了分治策略的思想。> 划分函数 int partition(int *nums,int left, int rig…

NuxtJS3配置多环境变量

1.在根目录添加开发环境.env.development # 本地环境 NODE_ENV development VUE_APP_NUXT_API_URL /api NUXT_BASE_PORT 3000 NUXT_BASE_LINK http://192.168.21.80:6000 NUXT_SYSTEM_TITLE xx管理系统2.在根目录添加测试环境.env.test # 测试环境 NODE_ENV test NUXT_…

Jmeter 自动化性能测试常见问题汇总

一、request 请求超时设置 timeout 超时时间是可以手动设置的&#xff0c;新建一个 http 请求&#xff0c;在“高级”设置中找到“超时”设置&#xff0c;设置连接、响应时间为2000ms。 1. 请求连接超时&#xff0c;连不上服务器。 现象&#xff1a; Jmeter表现形式为&…

SSL证书过期后网站是否能够正常访问?

SSL证书是确保网站数据传输安全和用户信任的重要组成部分。然而&#xff0c;一旦SSL证书过期&#xff0c;网站是否依然能够正常访问呢&#xff1f;本文将详细探讨SSL证书过期后对网站的影响以及相应的解决方法。 SSL证书过期后&#xff0c;网站的状态将发生以下变化&#xff1a…

作为开发人的我们,怎么可以不了解这些?

​​​​​​​必备技能&#xff1a; 文章结尾处&#xff0c;有资源获取方式 Spring Spring是一个轻量级的Java框架&#xff0c;它可以用于开发各种Java应用程序。Spring提供了丰富的功能&#xff0c;包括IoC容器、AOP、事务管理、Web开发、安全管理等等。Spring的IoC容器可以…

SQL sever2008中创建用户并赋权

一、创建数据库dream CREATE DATABASE dream; 二、创建登录用户XZS 法一&#xff1a;使用SSMS创建 通过查询 sys.syslogins 系统视图来确定当前登录是否具有系统管理员权限。执行以下查询语句&#xff1a; SELECT name, isntname FROM sys.syslogins WHERE sysadmin 1;选…

初始mach-o文件及在项目中应用

本文字数&#xff1a;2250字 预计阅读时间&#xff1a;15分钟 01 认识mach-o的必要性 了解mach-o的结构可以帮助认识系统加载二进制文件的动态链接和静态链接。应用层面&#xff0c;使用initialize的c函数计算启动时间耗时也需要以mach-o的结构知识为铺垫。还可以用在使用clang…

2、排列重要性 Permutation Importance

您认为模型哪些特性是重要的? 文章目录 1、简介2、工作原理3、代码示例4、解释排列重要性1、简介 对于模型来说,我们可能会问的最基本的一个问题是:哪些特征对预测影响最大? 这个概念被称为特征重要性。 有多种方法可以衡量特征重要性。一些方法回答了上面提到的问题的微…

03-OpenFeign-请求传参设置

在使用OpenFeign作为接口调用时&#xff0c; 兼容RequestMapping 注解&#xff0c;通过动态代理的方式&#xff0c;对接口调用过程中的参数进行封装&#xff1b; 主要的接口传参类型&#xff0c;常用的以下四种&#xff1a; 1、默认RequestBody Json格式 // 服务方 RestCon…

思腾云计算中心 | ,基础设施完善,提供裸金属GPU算力租赁业务

2021年&#xff0c;思腾合力全资收购包头市易慧信息科技有限公司&#xff0c;正式开启云计算业务。思腾云计算中心占地2400平米&#xff0c;位于包头市稀土高新区&#xff0c;毗邻多家知名企业&#xff0c;地理位置优越&#xff0c;交通便利&#xff0c;是区内重要的信息化产业…

前端项目接口请求封装

封装写法一&#xff1a; // 封装接口请求函数 function request(url, method, data, headers) { return new Promise((resolve, reject) > { const xhr new XMLHttpRequest(); xhr.open(method, url); // 设置请求头 if (headers) { Object.keys(headers).forEach…

JavaScript中的“??“: 空值合并运算符

在JavaScript中&#xff0c;null和undefined是两个特殊的值&#xff0c;它们表示“无”或“不存在”。在处理这些值时&#xff0c;我们经常需要进行检查以避免出错。在ECMAScript 2021 (ES12)中&#xff0c;引入了一个新的运算符&#xff1a;空值合并运算符&#xff08;Nullish…

怎么把几百M大小的视频做成二维码?扫码播放视频在线教程

怎么把几百M大小的视频做成一个二维码展示呢&#xff1f;通过二维码来作为视频的载体是现在很常用的一种手段&#xff0c;通过这种方式不仅成本比较低&#xff0c;而且传播速度也比较快&#xff0c;通过访问云端数据就可以播放视频。 视频二维码生成的方法一般会通过二维码生成…

C++模版初阶

前言 在本文我们将学习模版的基础知识点&#xff0c;了解泛型编程。 一、泛型编程 1、引入 我们如何实现一个通用的交换函数呢&#xff1f; 我们先看一段代码&#xff0c;如下&#xff1a; void Swap(int& left, int& right) {int temp left;left right;right te…

【DouYing Desktop】

I) JD 全日制大专及以上学历&#xff1b; 2. 3年以上的IT服务支持相关工作经验 3. 有较强的桌面相关trouble shooting与故障解决能力&#xff0c;能够独立应对各类型桌面问题&#xff1b; 4. 具备基础的网络、系统知识&#xff0c;能够独立解决常见的网络、系统等问题&#xf…

机器学习 | 如何利用集成学习提高机器学习的性能?

目录 初识集成学习 Bagging与随机森林 Otto Group Product(实操) Boosting集成原理 初识集成学习 集成学习&#xff08;Ensemble Learning&#xff09;是一种通过组合多个基本模型来提高预测准确性和泛化能力的机器学习方法。它通过将多个模型的预测结果进行整合或投票来做…

Linux 权限设置

修改文件权限:chmod 使用chmod可以修改文件权限 有两种使用格式:字母法与数字法 chmod 字母法的使用 角色说明: 角色 说明 u user, 表示该文件的所有者 g group, 表示用户组 o other, 表示其他用户 a all, 表示所有用户 权限设置说明: 操作符 说明 +

【Java程序设计】【C00243】基于Springboot的社区医院管理系统(有论文)

基于Springboot的社区医院管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的社区医院管理服务系统 本系统分为系统功能模块、管理员功能模块、用户功能模块以及医生功能模块。 系统功能模块&#xff1a;社…

ElementUI Form:Checkbox 多选框

ElementUI安装与使用指南 Checkbox 多选框 点击下载learnelementuispringboot项目源码 效果图 el-checkbox.vue &#xff08;Checkbox 多选框&#xff09;页面效果图 项目里el-checkbox.vue代码 <script> const cityOptions [上海, 北京, 广州, 深圳] export def…