LeetCode 热题 HOT 100 Day2

LeetCode-hot100题解—Day3 阅读详情

2. 两数相加(难度:中等)

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

请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。https://leetcode.cn/problems/add-two-numbers/
在这里插入图片描述
示例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.
 * 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) {}
 * };
 */

解法1:暴力求解

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        int flag = 0;
        int x = 0;
        int y = 0;
        ListNode* p = new ListNode();
        ListNode* l = p;
        while(l1 != nullptr || l2 != nullptr){
            if(l1 == nullptr){//若为空,则x = 0;
                x = 0;
            }else{
                x =l1->val;
                l1 = l1->next;
            }
            if(l2 == nullptr){
                y = 0;
            }else{
                y = l2->val;
                l2 = l2->next;
            }
            ListNode* temp = new ListNode();
            if(x + y + flag <10){//俩数相加小于10,不用进一位
                temp->val = x + y + flag;
                temp->next = nullptr;
                p->next = temp;
                p = p->next;
                flag = 0;
            }else{//俩数相加大于等于10,需要进一位
                temp->val = (x + y + flag)%10;
                temp->next = nullptr;
                p->next = temp;
                p = p->next;
                flag = 1;
            }
        }
        if(flag == 1){//当俩个列表遍历完毕,还有一个进位未保存,需要额外添加
            ListNode* temp = new ListNode();
            temp->val = 1;
            temp->next = nullptr;
            p->next = temp;
            p = p->next;
        }
        return l->next;
    }
};

解法2:递归

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        return dfs(l1,l2,0);
    }

    ListNode* dfs(ListNode* l1,ListNode* l2,int flag){
        if(!l1 && !l2 && flag == 0){
            return nullptr;
        }
        int sum = (l1 ? l1->val : 0) + (l2 ? l2->val : 0) + flag;//请看解释
        ListNode *temp = new ListNode(sum % 10);
        temp->next = dfs(l1 ? l1->next : nullptr,l2 ? l2->next : nullptr, sum/10);//请看解释
        return temp;
    }
};

补充解释:

x > y ? a : b   

是

	if (x > y) 
		a 
	else 
		b
leetcode hot100 中等难度 day03-刷题 阅读详情

相关推荐

leetcode hot100 中等难度 day04-刷题

leetcode hot100 中等难度 day04-刷题

weixin_46676835的博客 1237

LeetCode-hot100题解—Day4

LeetCode-hot100题解-Day5

m0_49074706的博客 1002

用FPGA控制步进电机是种什么体验?从状态机到分频器,详解Verilog驱动A4988全流程

本文详细介绍了如何使用FPGA通过Verilog语言控制步进电机,从状态机设计到A4988驱动模块的精准控制全流程。FPGA的并行处理能力和纳秒级响应速度使其在步进电机控制中展现出显著优势,特别适合工业自动化和精密仪器应用。通过实战代码示例,展示了如何实现高效的状态机设计和可编程分频器,为开发者提供了一套完整的FPGA驱动步进电机解决方案。

weixin_30983965的博客 329

Leetcode hot 100刷题之路(day 1)

想要找到最长子序列,其实就是对每一个数x,查询数组中是否存在 x+1,如果有,再次查询是否有x+2.可以用哈希优化搜寻过程为O(1),但是,外层需要遍历n个数,内层也需要匹配O(n)次,但其中有可以优化的过程,如果x匹配过了 那么x+1就不需要再次判断,因为肯定比x匹配过的短。当右指针指向非零,需要移动,不然会进入零区域,当指向零,不需要操作,只需要指向下一块区域。第一种解法,维护双指针,分别在0,size()-1,维护两个变量,分别是左最高,右最高。这道题用了数组的做法,判断两者的字母数组是否相同。

m0_73710531的博客 1682

VisionPro九点标定实战:从相机拍照到机器人精准抓取的完整流程

本文详细介绍了VisionPro九点标定技术在工业自动化中的应用,从相机拍照到机器人精准抓取的完整流程。通过硬件配置、标定步骤和实战技巧的解析,帮助工程师实现高精度视觉引导系统,提升生产效率。特别适合需要解决二维图像坐标与物理空间转换问题的自动化项目。

weixin_30664051的博客 407

【基于大模型 + FAISS 的本地知识库与智能 PPT 生成系统:从架构到实现】

本文介绍了一个基于大模型(Ollama+DeepSeek)和FAISS向量数据库的本地知识库与智能PPT生成系统。该系统采用前后端分离架构,包含文档管理、向量检索、PPT生成等核心模块,可实现文档智能解析、语义检索和结构化PPT自动生成。通过MVC设计模式,系统实现了从文档上传、向量存储到内容检索、PPT生成的全流程自动化,有效解决了企业知识管理效率低下的问题。架构设计清晰,功能模块完备,为企业和个人提供了高效的文档处理与二次创作解决方案。

聚焦大数据、AI、数据库三大核心领域,分享 Flink/Spark 实时计算、数仓架构设计、AI 模型落地、数据库性能调优的实战干货,附可直接运行的源码与方案。提供企业技术内训、项目咨询与定制化服务,助力开发者与企业高效搞定数智技术难题。 1600

LeetCode-hot100题解—Day2

力扣hot100题解-Day2

m0_49074706的博客 1213

分子对接中的相互作用特征分析(目视筛查)

介绍分子对接的相互作用特征,以及如何通过这些特征进行目视筛查

recher_He1107的博客 5761

【力扣hot100】刷题笔记Day6

普通数组:最大子数组和 + 合并区间 + 轮转数组 + 除自身以外数组的乘积 + 缺失的第一个正数

小涛44的博客 1434

2025虚幻游戏逆向工程解包尝试

2025虚幻游戏逆向工程解包指南 本文详细介绍了虚幻引擎5游戏逆向解包的完整流程,主要包括获取AES密钥、生成映射文件和导出资源三个关键步骤。作者在实际操作中遇到诸多难题:AES密钥获取工具存在加壳保护问题,映射文件生成器依赖复杂的VS编译环境,DLL注入工具的使用也存在技术门槛。通过多次尝试,作者发现部分游戏可直接搜索现成的AES密钥,而映射文件生成需要额外下载Memcury依赖库才能正常编译。文章提供了相关工具的下载链接和具体操作说明,但同时也指出每个环节都可能出现意外状况,逆向工程实际执行过程远比理论

wsdchong的博客 6154

Altera下载器驱动配置:手把手教程(从零实现)

详解Altera USB-Blaster驱动安装全过程,从设备识别到软件配置一步一图,解决常见连接问题,确保开发下载器正常工作,适合初学者快速上手FPGA下载调试。

weixin_35751194的博客 989

LeetCode-hot100题解—Day6

LeetCode-hot100题解—Day6

m0_49074706的博客 1406

CDD那些事 - DID and SecurityAccess

本文介绍了SecurityAccessSID27的安全访问配置流程:1.通过StateGroups添加Level2群组;2.在Classes定义L2子功能;3.配置4步解锁流程,选择对应解锁等级;4.在DiagnosticInstance设置请求响应。同时说明了DID配置的两种方式:在DIDs页面定义或通过Identification页面创建,前者定义更全面。文章还提到ServiceList支持view/edit模式,其中edit模式可配置DID的多服务支持(如同时支持SID22读取和SID2E写入),但该

ziteng21的博客 256

【LeetCode】挑战100天 Day13(热题+面试经典150题)

【LeetCode】挑战100天 Day13(热题+面试经典150题)

ith321的博客 1563

YOLOv11损失函数进阶:融合SmoothL1与FocalLoss,让检测精度再涨10%的实战教程

在YOLOv11的这里的beta参数控制“L1与L2的过渡阈值”,默认设为1.0即可兼容多数场景。同样在# 计算动态alpha(基于类别样本数,需提前统计self.class_counts)# 交叉熵基础# FocalLoss权重else:使用前需统计数据集的(每个类别的样本数),并传入的alpha参数。损失函数是YOLOv11精度的“灵魂”——SmoothL1让边界框回归“稳、准、狠”,改进FocalLoss让类别分类“雨露均沾”。从代码改造到实战落地,本教程已为你搭建了一条精度跃升的路径。

m0_64661770的博客 213

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【LeetCode】挑战100天 Day16(热题+面试经典150题)

【LeetCode】挑战100天 Day16(热题+面试经典150题)

ith321的博客 1465

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

leetcode hot100 简单难度 day01-刷题

leetcode刷题-hot100题单:day01

weixin_46676835的博客 1145

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【力扣hot100】刷题笔记Day5

子串:和为K的子数组 + 滑动窗口最大值 + 最小覆盖子串

小涛44的博客 1264

leetcode hot100 中等难度 day05-刷题

leetcode hot100 中等难度 day05-刷题

weixin_46676835的博客 1143

LeetCode-hot100题解—Day1

力扣热题100题解—Day1

m0_49074706的博客 1972

力扣Hot100 Day1

1. 两数之和作为算法岗求职的准备,今天我开始系统刷力扣Hot100题目,重点攻克哈希表相关的高频面试题。哈希表是算法面试中最常考的数据结构之一,掌握好相关题型对秋招至关重要。

m0_74210543的博客 1045

LeetCode-hot100题解—Day7

LeetCode-hot100题解—Day7

m0_49074706的博客 1115

《LeetCode Hot100》 Day01

(4) 如果当前字符是数字,则将multi的值*10再加上当前的数字,乘以10的目的是为了当数字为多位数时,确保正确拼接为一个正确的数字。(2) 如果当前字符是'[',则将当前res存储到特定栈中,并将multi也存储到对应的特定栈中。(3) 如果当前字符是']',则将栈中的res和multi都取出来,其中res重复multi次,添加到一个temp字符串中。// 存储当前解码的结果。// 保存当前解码结果。// 保存当前的重复次数。• // 遇到 '[' 时,先保存当前的重复次数和解码结果。

qq_59615070的博客 868

两天速通力扣HOT100[DAY2] (55~100)

本题解旨在以最简单的语言总结hot100各题思路,为每一题提供一个思考入口,但想要手撕出来,需要自己认真推理细节。

WynnLu的博客 1339

力扣-Hot100-哈希【算法学习day.30】

##我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!

2301_79232523的博客 933

leetcode hot100 简单难度 day02-刷题

leetcode hot100 简单难度 day02-刷题

weixin_46676835的博客 873
上一篇: LeetCode 热题 HOT 100 Day1
下一篇: LeetCode 热题 HOT 100 Day3
IT_vegetable
博客等级 码龄7年 14粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值