LeeCode刷题记录(JavaScript版):2.两数相加

LeetCode 链表两数相加 JavaScript 实现 LeetCode 是一个广受欢迎的在线编程实践平台,它为程序员提供了大量与算法和数据结构相关的习题,以及测试和提升编程技能的机会。JavaScript 作为其支持的众多编程语言之一,经常被用于解决各种类型的问题。链表是一种常见的基础数据结构,由一系列节点组成,每个节点包含数据部分以及一个或多个指针,这些指针指向下一个节点的位置。在链表中,各个节点在物理内存上不一定连续存储,这与数组等其他数据结构相比是一个显著的区别。链表的特点如下:动态大小。 阅读详情

题目描述:

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 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]

我的题解:

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var addTwoNumbers = function(l1, l2) {
// 以数组形式返回结果
            var l = [];
            // 定义k数组用来控制进位
            var k = [];
            for (let i = 0; i < Math.max(l1.length, l2.length); i++) {
                // 以较长数组为准,较短数组位数不足的补0
                l1[i] = (l1[i] === undefined ? 0 : l1[i]);
                l2[i] = (l2[i] === undefined ? 0 : l2[i]);
                // ks为进位信息
                let ks = ((l1[i] + l2[i]) / 10) >= 1 ? 1 : 0;
                k.push(ks);
                // value为数组对应位数值相加取余
                let value = (l1[i] + l2[i]) % 10;
                l[i] = value;
                // 如果进位信息为1,则进位
                if (k[i - 1] === 1) {
                    l[i] += 1;
                    // 如果进位后为10,则改为0,进位信息加1
                    if (l[i] === 10) {
                        l[i] = 0;
                        k[i] = 1;
                    }
                }
                // 当那一位数是0且进位信息为1时,数组延长一位
                if (l[i] === 0 && k[i] === 1) {
                    l[i + 1] = 1;
                }
                // console.log(k);

            }
            return l;
};

总结:

  1. 用数组结构得出的解法无法在Leecode的编译器上运行,题目要求为链表结构
  2. 用数组存储进位信息很方便
  3. 有空了研究一下链表的代码怎么写
JavaScript链表实现LeetCode“两数相加” LeetCode是IT行业及计算机相关专业技术人员面试准备过程中不可或缺的在线编程和技能测试平台。它不仅提供了一个庞大且多样化的题库,覆盖了从简单到高级不同难度等级的题目,同时也允许用户在规定时间内提交代码并获得即时反馈。对于寻求提升编程技能、准备技术面试,或是想了解自己在编程方面的真实水平的开发者来说,LeetCode是一个极为有效的学习工具。接下来的章节将详细介绍如何利用LeetCode提升编程能力,并以具体问题为例,展示在LeetCode上进行算法练习的流程。 阅读详情

相关推荐

S32DS使用手把手教程:从零实现CAN通信配置

深入讲解S32DS使用过程中如何从零开始配置CAN通信,涵盖关键步骤与实用技巧,帮助开发者快速上手S32DS使用中的常见问题与调试方法。

weixin_42405592的博客 1127

【前端来刷LeetCode】两数之和与两数相加

大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式、调兼容就够掉头发的了,哪还有多余的头发再去折腾。 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦。对了,算法在面试中可是必考项啊,所以为了期望薪资,头发还是得做下牺牲呀。 有些小伙伴认为,刷了那些奇奇怪怪的算法题,可在工作中很少能直接派上用场,嗯,没错,所以学算法是件高延迟满足的事情。那么学算法,到...

weixin_33919941的博客 418

MATLAB - ROS 2 工具箱入门教程

ROS 工具箱提供了一个连接 MATLAB® 和 Simulink® 与机器人操作系统(ROS 和 ROS 2)的接口。利用该工具箱,您可以设计 ROS 节点网络,并将 MATLAB 或 Simulink 生成的 ROS 节点与现有的 ROS 网络相结合。工具箱包括 MATLAB 函数和 Simulink 块,可通过记录、导入和回放 rosbag 文件来可视化和分析 ROS 数据。您还可以连接到实时 ROS 网络,访问 ROS 消息。

机器人控制与仿真应用 3068

LeeCode刷题记录 1-10

记录一下,仅此而已 1. 两数之和 + 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 + 示例: 给定 `nums = [2, 7, 11, 15], target = 9` 因为 `nums[0] + num...

243

【Python爬虫(1)】专栏开篇:夯实Python基础

要想熟练掌握 Python 爬虫技术,扎实的 Python 基础是必不可少的。这就好比建造高楼大厦,Python 基础就是那稳固的基石。只有打好了这个基础,我们才能在爬虫的学习道路上稳步前行,理解并运用各种爬虫技术和框架。

邓邓子的博客 2026

Dify 实战:使用 Firecrawl 插件高效爬取微信公众号文章

本文介绍了如何利用Dify平台和Firecrawl插件构建微信公众号文章自动化采集系统。Dify作为开源LLM应用开发平台,结合Firecrawl的智能网页爬取能力,可轻松实现文章爬取、清洗和结构化存储。文章详细讲解了环境部署、插件安装以及工作流创建过程,通过可视化节点操作即可完成从URL输入到Markdown格式输出的全流程。该方案无需复杂代码,能有效解决反爬、动态渲染等问题,适用于知识库构建、模型训练等场景,显著提升开发效率。

SmartSi 1828

LeetCode - 2 两数相加

给你两个 非空 的链表,表示两个非负的整数。为了代码简单,我们可以总是保证 l1 是较长链表(如果 l1 是较短的,则互换 l1 和 l2)。首先:判断出 l1 和 l2 两个链表哪个长,我们以较长的链表作为基础,即将较短的链表。输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]输入:l1 = [2,4,3], l2 = [5,6,4]输入:l1 = [0], l2 = [0]输出:[8,9,9,9,0,0,0,1]较长的链表中,避免创建新链表。输出:[7,0,8]

优快云 1487

微店构造订单页面,自动化抢票

之前的文章写过微店抢票如何构造订单页面分析,这篇文章在之前的基础上,进行抢票。

猫敷雪 7204

LeetCode2.两数相加 JavaScript

LeetCode2.两数相加 JavaScript 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4) 输出:7 -&gt; 0 -&gt; 8 原因:342 + 465 = ...

weixin_34326179的博客 367

第一章:基础知识 - 概念与基础,理解什么是功耗

电源管理与功耗调优:实战项目经验分享

坚韧与专注 885

PyTorch实战:卷积神经网络详解+Python实现卷积神经网络Cifar10彩色图片分类

PyTorch可以说是三大主流框架中最适合初学者学习的了,相较于其他主流框架,PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是,框架可以类比为编程语言,仅为我们实现项目效果的工具,也就是我们造车使用的轮子,我们重点需要的是理解如何使用Torch去实现功能而不要过度在意轮子是要怎么做出来的,那样会牵扯我们太多学习时间。以后就出一系列专门细解深度学习框架的文章,但是那是较后期我们对深度学习的理论知识和实践操作都比较熟悉才好开始学习,现阶段我们最需要的是学会如何使用这些工具。

master_hunter的博客 8936

js.两数相加(链表)和反转链表

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。

露西西⭐的博客 963

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

leeCode,两数相加,js版。难度:中等

两数相加结果题目要求js代码解题思路如果对你有帮助,记得点个赞哦 结果 题目要求 js代码 var addTwoNumbers = function(l1, l2) { let head = null, tail = null; let carry = 0; while (l1 || l2) { const n1 = l1 ? l1.val : 0; const n2 = l2 ? l2.val : 0; const sum =

F_fengzilin的博客 431

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LeetCode 002 两数相加 JavaScript版

题目: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 来源:力扣(LeetCode) 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 思路: 首先理解题意是让两个链

weixin_42699636的博客 285

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LeeCode -- 2.两数相加

LeeCode002 两数相加 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 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,

JingLisen的博客 1532

Leecode - 2. 两数相加(JavaScript版超详细)

题目描述 给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 按照题目,我们要将两个链表的值逆序存储,然后将他们的值相加,在逆序输出 示例: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 输入:l1 = [0], l2 = [0] 输出:[0] 输入

weixin_45663697的博客 912

leecode #2 两数相加 前端小白技术自救日常

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

qq_52040085的博客 172

LeeCode 002-两数相加

leecode 002 两数相加(模拟相加运算)-链表 博主是一个前大厂前端开发,以后会不定期更新前端知识,和算法分享

weixin_42445439的博客 472

力扣 (LeetCode)-两数之和,有效的括号,两数相加

Github来源:力扣 (LeetCode)|刷题打卡 | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者[已开启]任务一:刷题打卡 * 10 篇大家好,我是魔王哪吒,很高兴认识...

程序员哆啦A梦,蓝胖子 2218

JavaScript-算法-两数相加

目录两数相加两数相加 两数相加 两数相加 1. 问题描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers 2. 解题思路 定义头尾指针 遍历两个链表 两数之和为两个值相加再加上进位值 将

qq_43128157的博客 1588

Leetcode 111 两数相加

/ 链表节点定义(题目给定)int val;// 存储当前位数字(0-9)// 指向下一个节点的指针// 构造函数:方便创建节点(直接传值,next默认空)逐位求和(l1.val + l2.val + 进位)→ 取余存当前位 → 整除更新进位 → 循环创建新节点;关键技巧:用哑节点简化结果链表的头节点处理,避免繁琐的空判断;l1!= 0(三个条件缺一不可);你的初始思路完全正确,只是需要把「存三个变量、取余、创建节点」的步骤用循环串联起来,这就是本题的完整解法。你这份代码的。

im_AMBER的博客 657

LeetCode刷题记: 两数相加

第一题

nzyalj的博客 459

刷题74——两数相加 II

113.两数相加 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers-ii 题目描述 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 进阶: 如果输入链表不能...

明媚 245
上一篇: LeeCode刷题记录(JavaScript版):1.两数之和
下一篇: npm install报错记录
APythonC
博客等级 码龄7年 23粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值