天天刷题-->LeetCode(两数相加)

news2024/11/17 11:52:40

 


个人名片:
🐅作者简介:一名大二在校生,热爱生活,爱好敲码!
\ 💅个人主页 🥇:holy-wangle
➡系列内容: 🖼️ tkinter前端窗口界面创建与优化
🖼️ Java实现ATP小系统
✨个性签名: 🍭不积跬步,无以至千里;不积小流,无以成江海


        从这一篇文章开始,我决定我要每天最少刷一道算法题目,我的题目现在暂时来源于LeetCode,后续可能还会去牛客网等等进行学习算法题目,有兴趣,或者已经在刷的大牛希望多多指教我,好吗?靓仔靓女们!!! 

        话不多说,下面我们的算法题目。


        两数相加

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

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

        你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

提示(要求):

  • 每个链表中的节点数在范围 [1, 100] 内
  • 0 <= Node.val <= 9
  • 题目数据保证列表表示的数字不含前导零

示例 1:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

         从题目来看,就是给两个非空链表来里面存储两个整数,每个节点存储一位数,然后把这两个链表相加起来(意思就是把两个整数加起来后的数,用链表来存储这个数),得到一个它们求和后的链表。

        我的思路:因为每个节点都可以存储一位数而且是逆序存储的,所以我们可以遍历这个列表,然后把相应的位数相加,如果大于10,就产生进位,把这个进位数保存下来,然后一直循环,循环到两个链表(或者其中一个)指向null的时候或者carry进位值为0的时候,就证明我们的相加可以结束了,这个时候结束我们的循环即可!

        当然还有更多思路,我这里提供一种而已。

        下面是java代码的实现:

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


// 创建一个ListNode节点
class ListNode {        //类名 :Java类就是一种自定义的数据结构
    int val;            //成员变量:数值
    ListNode next;      //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似

    public ListNode() {
    }

    public ListNode(int val){   //一个参数的构造方法
        this.val=val;     //把接收的参数赋值给当前类的val变量
    }
    public ListNode(int val, ListNode next) { this.val = val; this.next = next; }//这个就是包含两个参数的构造方法

}

class ListTable{
    public ListNode addTwoNumber(ListNode l1,ListNode l2){
        // 哨兵节点
        ListNode dummy = new ListNode();
        ListNode cur = dummy;
        int carry = 0 ;// 进位
        // l1或者l2为空时,就是有一方已经到达了链表尽头,不用继续迭代了;或者进位为空时,也不需要继续了
        while(l1 != null || l2 != null || carry != 0)
        {
            if (l1 != null)
            {
                carry += l1.val;
            }
            if (l2 != null)
            {
                carry += l2.val;
            }
            // 如果产生了进位,先把产生了进位后的余数,就是对应的比进位的权重要低一位的低位数;
            //eg: carry = 14, 进位为1,低位数为4
            // 保存到dummy
            cur = dummy = new ListNode(carry % 10);
            // 新的进位
            carry = carry / 10;
            if (l1 != null)
            {
                l1 = l1.next; // 指向写一个节点
            }
            if (l2 != null)
            {
                l2 = l2.next;  // 指向写一个节点
            }
        }
        // 返回哨兵位指向的我们需要的链表的头节点,dummy就是我们的答案链表
        return dummy.next;
    }

}


感谢各位的观看,创作不易,能不能给哥们来一个点赞呢!!!

好了,今天的分享就这么多了,有什么不清楚或者我写错的地方,请多多指教!

私信,评论我呗!!!!!!

关注我下一篇不迷路哦!

 

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

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

相关文章

MachineLearningWu_7+8_LogisticRegression/Classification

x.1 logistic regression 对于诸如分辨细胞是恶性肿瘤细胞与否的类似分类问题&#xff0c;我们使用Linear Regression的模型并不合适&#xff0c;所以引入Logistic Regression的模型&#xff0c;并绘制decision boundary&#xff0c;如下&#xff0c; Classification的最后一层…

mysql多表查询内连接,左外连接,排序,having

多表连接查询 use mydb3; -- 创建部门表 create table if not exists dept3(deptno varchar(20) primary key , -- 部门号name varchar(20) -- 部门名字 );– 创建员工表 create table if not exists emp3(eid varchar(20) primary key , -- 员工编号ename varchar(20), -- 员…

python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)

简介 大多数的初学者在使用 unittest 框架时候&#xff0c;不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚&#xff0c;不知道什么时候执行&#xff0c;什么时候不执行。虽然或许通过代码实现了&#xff0c;也是稀里糊涂的一知半解&#xff0c;这样还好&am…

基于深度学习的高精度Caltech行人检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度Caltech数据集行人检测识别系统可用于日常生活中或野外来检测与定位行人目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的行人目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv…

部署HAproxy + Nginx负载均衡集群

目录 一、常规Web集群调度器 HAproxy概念&#xff08;主要特性&#xff09; HAproxy负载均衡八种策略 二、LVS、Nginx、HAproxy区别 Nginx服务 LVS服务 HAproxy服务 三、部署HAproxy Nginx负载均衡集群 第一步 关闭防火墙和安全机制 第二步 安装依赖环境 第三步 导…

基于paddelOCR的车票识别以及在PCB板上应用

基于paddelOCR的车票识别 任务简介 车牌识别就是从图片或者视频中提取车牌信息 任务难点 尺度差异大&#xff0c;悬挂位置不固定&#xff1b;角度倾斜&#xff0c;图片模糊&#xff0c;光照不足&#xff0c;过曝等问题&#xff1b;边缘和端测场景应用对模型大小有限制&#…

C++之装饰器适配器模式

目录 一、装饰器模式 模式思想 模式简介 模式优点 模式缺点 代码实现 情景模拟 代码实现 运行结果 二、适配器模式 模式简介 介绍 优点 缺点 代码实现 情景模拟 一、装饰器模式 模式思想 模式简介 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向…

前端基础(三十六):读取本地音视频设备并进行播放

效果 navigator.mediaDevices.enumerateDevices 请求媒体输入和输出设备的列表&#xff0c;例如麦克风&#xff0c;摄像机&#xff0c;耳机设备等 navigator.mediaDevices.getUserMedia 会提示用户给予使用媒体输入的许可&#xff0c;媒体输入会产生一个MediaStream&#xff0c…

伺服系统行业发展

伺服系统行业发展 1 介绍1.1 概述1.2 一般应用1.3 分类按系统功率分类按动力来源分类 1.4 工业控制中的伺服系统1.5 数字信号驱动与模拟信号驱动对比1.6 发展历史 2 伺服系统厂家工业机械臂移动AMR 3 关键指标及难点4 三相交流逆变器&#xff08;直流电转换为交流电&#xff09…

创建 Code Interpreter Demo: 一次实践的探索

好消息&#xff0c;好消息&#xff0c;Code Interpreter可以测试使用了&#xff01;&#xff01;&#xff01; 在这篇文章中&#xff0c;我们将探索如何创建一个 Code Interpreter Demo。提交一个2023年1-5月份的融资记录数据&#xff0c;让它来帮我们分析一下这些数据。 执行…

TCP 重传机制 滑动窗口 流量控制 拥塞控制 学习总结!

大家好&#xff0c;我是三叔&#xff0c;很高兴这期又和大家见面了&#xff0c;一个奋斗在互联网的打工人。 这篇博客主要记录 tcp 的基础知识的学习总结相关内容&#xff01;备注&#xff1a;图片均来自作者&#xff1a;小林哥 tcp 的三大特性 tcp 大家都不陌生&#xff0c…

Python制作gif表情包生成工具,斗图再也不会输啦

在当前无表情包不会聊天的时代&#xff0c;怎么也不能输在表情包数量不足上啊&#xff0c;今天咱们就来制作一个 gif 生成工具&#xff0c;用来制作表情包也太好用啦 先来看看整体效果 技术交流 技术要学会分享、交流&#xff0c;不建议闭门造车。一个人可以走的很快、一堆人…

如何解决PostgreSQL执行语句长时间卡着不动,不报错也不执行的问题?

1 问题现象 执行SQL语句&#xff0c;卡着不动&#xff0c;不成功也不执行&#xff0c;就像挂住了一样。 truncate table simple; 2 原因分析 一般来说&#xff0c;语句呈现卡着的状态&#xff0c;主要会是两种原因比较多&#xff0c; 原因1&#xff1a;SQL语句是一个耗时操…

Java8新特性——lambda表达式、函数式接口、方法引用、Stream API与Optional类

目录 一、lambda表达式 (一)lambda相关概念 (二)lambda示例 (三)lambda用法 1.语法格式一&#xff1a;无参&#xff0c;无返回值 2.语法格式二&#xff1a;有参数&#xff0c;无返回值 3.数据类型可以省略&#xff0c;因为可由编译器推断得出&#xff0c;称为”类型推断…

统计数据记录

分红20% 分红22% 分红25%

手把手教大家实现 npm 包,并发布 npm 仓库,搭建文档(二)

昨天写了第一篇文章,反响平平 一个 NPM 包,帮助数十万程序员提高数十倍效率,难道不开源出来?(一) 首先贴下我们的官网 【预览页】 https://kennana.github.io/toolkit-use/ 我们的推特 【toolkituse】 https://twitter.com/Toolkituse 我们的github 【toolkit-u…

实现一个周选择器组件

1、需求&#xff1a; 默认每个月的第一个周一为该月的第一周开始&#xff0c;规则如图所示 2、使用到的工具&#xff1a; vue2vant2momentjs 3、父组件&#xff1a; data中定义涉及到的参数 minDate: new Date(this.$moment().subtract(12,month)) maxDate: new Date(),…

OpenCV 入门教程:全局阈值处理

OpenCV 入门教程&#xff1a;全局阈值处理 导语一、全局阈值处理二、示例应用2.1 图像二值化2.2 图像去噪 总结 导语 全局阈值处理是图像处理中常用的技术之一&#xff0c;用于将图像转换为二值图像&#xff0c;从而提取感兴趣的目标区域。在 OpenCV 中&#xff0c;全局阈值处…

Mathtype公式编号,章节号修改

正常插入公式时&#xff0c;选择有编号没有任何问题&#xff0c;但是&#xff0c;当需要根据章节编号时&#xff0c;这个如何处理呢&#xff0c;这个时候需要 公式编号-章节-修改分隔符&#xff0c;然后会弹出一个对话框&#xff0c;这时可以修改章节开始序号。 此外&#xff…

【力扣周赛】第 353 场周赛

文章目录 Q1&#xff1a;6451. 找出最大的可达成数字&#xff08;脑筋急转弯&#xff1f;&#xff09;思路竞赛时代码 Q2&#xff1a;6899. 达到末尾下标所需的最大跳跃次数&#xff08;DP&#xff09;思路竞赛时代码 Q3&#xff1a;6912. 构造最长非递减子数组&#xff08;DP&…