【力扣 Hot100 | 第一天】4.10 两数相加

news2024/12/23 22:15:56

在这里插入图片描述

文章目录

  • 1.两数相加(4.10)
    • 1.1题目
    • 1.2解法一:模拟
      • 1.2.1解题思路
      • 1.2.2代码实现

1.两数相加(4.10)

1.1题目

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

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

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

  • 示例一:

img

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

1.2解法一:模拟

1.2.1解题思路

  • 因为是逆序排序,即每一位的进位是进位在下一个数字的运算中

  • 注意:返回链表时,也逆序排序即可

  • 步骤:

    • 每次循环时,取两个链表各自的数字(若为空,则取0),再加上进位carry

    • 再创建节点存放(sum%10),进位后仅剩的最后一位数

    • 处理进位(carry=sum/10)

    • 移动链表:

      if(l1!=null){
      	l1=l1.next;
      }
      if(l2!=null){
          l2=l2.next;
      }
      
      注意:不要写成下面这样子,否则移动到最后一个节点之后,就移动不了了
      if(l1.next!=null){
      	l1=l1.next;
      }
      if(l2.next!=null){
          l2=l2.next;
      }    
      

1.2.2代码实现

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        int carry=0;    //进位
        ListNode head=null;
        ListNode cur=null;
        while(l1!=null || l2!=null){
            int x=l1==null?0:l1.val;
            int y=l2==null?0:l2.val;
            int sum=x+y+carry;
            if(head==null){
                //头节点
                head=new ListNode(sum%10);
                cur=head;
            }else{
                //非头节点
                ListNode tmp=new ListNode(sum%10);
                cur.next=tmp;
                cur=tmp;
            }
            //处理进位
            carry=sum/10;

            if(l1!=null){
                l1=l1.next;
            }
            if(l2!=null){
                l2=l2.next;
            }
        }

        //处理最后一个进位
        if(carry!=0){
            ListNode tmp=new ListNode(carry);
            cur.next=tmp;
        }
        
        return head;

    }
}

在这里插入图片描述

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

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

相关文章

OpenHarmony南向嵌入式:【XR806开发板指导文档】

一. 简介 芯片介绍 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持OpenHarmony轻量设置系统。具有集成度高、硬件设计简单、BOM成本低、安全可靠等优点。可广泛满足 智能家居、智慧楼宇、工业互联、儿童玩具、电子竞…

NCF代码运行

keras 2.1.4 tensorflow 1.12.0 python 3.6.4 numpy 1.14.5 一、准备工作 1、安装虚拟环境 conda create -n tensorflow python3.6.4conda activate tensorflowconda install tensorflow1.12.0conda install keras2.1.4conda info2、安装相应依赖 cd Py3_Recommender-Syste…

恶意样本溯源法

恶意样本溯源追踪主要去了解攻击者或者团队的意图;(有因才有果,这里主要是通过分析结果,去了解攻击者的意图,比如:政治,私怨,业务,经济等)。 了解攻击链 恶…

tkinter窗口组件Entry

from tkinter import * 创建主窗口 app Tk() 设置窗口大小为1040x2048(手机) app.geometry(“1040x2048”) 设置窗口背景为灰色 app.configure(bg“gray”) 定义一个函数text(),用于处理输入框内容的变化 def text(): # 获取输入框e1的内容 if e1.get() “…

JVM之JVM的基本介绍

基本介绍 JVM:全称 Java Virtual Machine,即 Java 虚拟机,一种规范,本身是一个虚拟计算机,直接和操作系统进行交互,与硬件不直接交互,而操作系统可以帮我们完成和硬件进行交互的工作 特点&…

【计算机毕业设计】停车场管理系统——后附源码

🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…

Chatgpt掘金之旅—有爱AI商业实战篇|虚拟助理|(九)

演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 一、AI技术创业在虚拟助理业务有哪些机会? 人工智能(AI)技术作为当今科技创新的前沿领域,为创业者提供了广阔的机会和挑战。随…

java项目之的网上报名系统(源码+文档)

项目简介 网上报名系统的主要使用者分为:管理员模块如下:首页、个人中心、考生管理、级别专业管理、报名信息管理、考生成绩管理、系统论坛、系统管理等。考生模块:首页、个人中心、报名信息管理、考生成绩管理等。前台首页:首页…

关于Ribbon在SpringCloudAlibaba2021.1版本中,找不到服务实例

关于Ribbon在SpringCloudAlibaba2021.1版本中,找不到服务实例 放个妹子 SpringCloudAlibaba在2021.1版本中,spring-cloud-starter-alibaba-nacos-discovery默认已经移除了ribbon模块 手动加上spring-cloud-starter-netflix-ribbon依赖后,项目能正常启动…

【程序分享】MD2D 程序:用于从分子动力学模拟中准确测定扩散系数的 python 模块

分享一篇用于从分子动力学准确测定扩散系数的 python 模块:MD2D 。 感谢论文的原作者! 主要内容 “通过将均方位移(MSD)拟合到爱因斯坦关系中,可以从分子动力学(MD)模拟中推导出自扩散系数。然而&#…

设计模式——外观(门面)模式10

外观模式:能为系统框架或其他复杂业务流程封装提供一个简单的接口。 例如抽奖过程中 设计模式,一定要敲代码理解 调用1(抽奖系统) /*** author ggbond* date 2024年04月08日 10:34*/ public class Lottery {public String getId…

使用 HBuilderX自动上传Uniapp 微信小程序代码

HBuilderX内置相关环境,开箱即用,无需配置nodejs。本文只介绍发布微信小程序的步骤。 1.下载和安装 HBuilderX hbuilder首页:https://www.dcloud.io/hbuilderx.html 下载hbuilder编辑器,选择对应的系统,Windows和mac正式版即可,下载后免安…

数字化时代:IT界的致富秘籍 —— 策略×态度×机遇

🌟 数字化时代:IT界的致富秘籍🚀 —— 策略态度机遇 在数字化浪潮中冲浪🏄‍♂️,IT行业犹如一片无限可能的蓝海。想要在这片汹涌的海洋中捕获财富,不是一件轻而易举的事。让我们一起深入探索,如…

判断系统是debian、centos、Ubuntu的命令

要确认自己的Linux系统是基于Debian的还是其他发行版,你可以使用几种不同的方法。以下是几种常见的方法: cat /etc/os-releaselsb_release -acat /etc/issueunmae -a os-release文件 cat /etc/os-release:这个文件通常包含了关于你的操作系…

云服务器环境web环境搭建之JDK、redis、mysql

一、Linux安装jdk,手动配置环境 链接: https://pan.baidu.com/s/1LRgRC5ih7B9fkc588uEQ1whttps://pan.baidu.com/s/1LRgRC5ih7B9fkc588uEQ1w 提取码: 0413 tar -xvf 压缩包名 修改配置文件/etc/profile 二、安装redis环境 方案一: Linux下安装配置r…

力扣HOT100 - 56. 合并区间

解题思路: class Solution {public int[][] merge(int[][] intervals) {// 先按照区间起始位置排序Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);int[][] res new int[intervals.length][2];int idx -1;for (int[] interval : intervals) {//直接加入的…

JS控制元素平滑滚动,页面自动滚动锚点实现

使用 scrollIntoView 实现元素内子元素的平滑滚动, 下面是模拟接口list返回,然后通过按钮切换下一个,页面就会滚动到响应的位置 具体 scrollIntoView 有一些其他参数来配置滚动的具体交换,网上去查即可 备注:下面的代码…

cocos creator 实现spine局部换装

1 使用3.7.4版本 2 js代码 3 c Native层修改源码

elasticsearch7安全配置--最低安全等级,用户名密码

上一篇博客在centos7上安装了elasticsearch7 接下来对elasticsearch进行安全方面的配置 minimal security 最低安全等级,用户名密码 首先开启xpack vim config/elasticsearch.yml xpack.security.enabled: true由于我是单机配置的,还加了如下配置 d…

小区烟火AI检测/楼道杂物堆积消防隐患AI智能识别方案

一、背景需求 据新闻报道,今年4月7日,安徽省合肥市肥东县一民房发生火灾,致1死11伤,起火点是“一楼楼道杂物间”。 因为小区居民楼楼道堆积大量杂物而导致的消防火灾事故也不在少数。楼道堆积杂物是一个长期存在的问题&#xff…