【Hot100】LeetCode—2. 两数相加

目录

  • 1- 思路
    • 思路
  • 2- 实现
    • ⭐2. 两数相加——题解思路
  • 3- ACM 实现


  • 原题连接:2. 两数相加

1- 思路

思路

分为几个步骤 ①数据结构:遍历指针,进位符②遍历两个链表③处理最后的进位符

  • 1- 数据结构
    • 定义 curAcurB 用来遍历两个链表
    • 定义 carry 记录进位
  • 2- 遍历两个链表
    • 通过中间变量,读取,若当前节点不为 null则读取值
    • 计算当前 nowNode
    • 计算进位值 carry
  • 3- 处理最终结果
    • 判断是否有进位值

2- 实现

⭐2. 两数相加——题解思路

在这里插入图片描述

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode curA = l1;ListNode curB = l2;ListNode dummyHead = new ListNode(-1);ListNode cur = dummyHead;int carry = 0;while(curA!=null || curB!=null){int v1 = curA==null? 0:curA.val;int v2 = curB==null? 0:curB.val; int sum = v1+v2+carry;carry = sum/10;int now = sum%10;ListNode newNode = new ListNode(now);cur.next = newNode;cur = cur.next;if(curA!=null) curA = curA.next;if(curB!=null) curB = curB.next;}if(carry!=0){cur.next = new ListNode(carry);}return dummyHead.next;}
}

3- ACM 实现

public class twoSum {public static class ListNode {int val;ListNode next;ListNode(int x) {val = x;next = null;}}public static ListNode twoSum(ListNode head1,ListNode head2){ListNode curA = head1;ListNode curB = head2;ListNode dummyHead = new ListNode(-1);ListNode cur = dummyHead;int carry = 0;while(curA!=null || curB!=null){int val1 = curA == null? 0: curA.val;int val2 = curB == null? 0: curB.val;int nowNode = (val1+val2+carry)%10;carry = (val1+val2+carry)/10;cur.next = new ListNode(nowNode);cur = cur.next;if(curA!=null) curA = curA.next;if(curB!=null) curB = curB.next;}return dummyHead.next;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);
// 读取第一个链表的节点数量int n1 = sc.nextInt();ListNode head1 = null, tail1 = null;for (int i = 0; i < n1; i++) {int val = sc.nextInt();ListNode newNode = new ListNode(val);if (head1 == null) {head1 = newNode;tail1 = newNode;} else {tail1.next = newNode;tail1 = newNode;}}// 读取第二个链表的节点数量int n2 = sc.nextInt();ListNode head2 = null, tail2 = null;for (int i = 0; i < n2; i++) {int val = sc.nextInt();ListNode newNode = new ListNode(val);if (head2 == null) {head2 = newNode;tail2 = newNode;} else {tail2.next = newNode;tail2 = newNode;}}ListNode forRes = twoSum(head1,head2);while (forRes!=null){System.out.print(forRes.val + " ");forRes = forRes.next;}}
}

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

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

相关文章

慎投!4本SCI/SSCI期刊被剔,8月WOS已更新!

SCI/SSCI期刊目录8月份已更新&#xff01;快来查收最新动态&#xff01;如有相关领域作者有意投稿&#xff0c;可作为重点关注&#xff01; ​ 期刊动态 ​ 2024年8月科睿唯安期刊目录更新 2024年8月20日&#xff0c;科睿唯安更新了WOS期刊目录&#xff0c;此次更新&#x…

O2OA(翱途)服务器配置与管理-如何修改服务器内存占用率?

o2server 启动后一般占用大约4G~6G内存空间,在启动脚本中默认设置 -Xms2g 限定heap(堆)的大小最小2G,可以通过设置-Xmx来设置堆的上限. Xms -Xms2g:设置JVM初始堆内存为2g.此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存. Xmx -Xmx5g:设置JVM最大堆内存为5g.…

ES-分布式搜索引擎

DSL查询文档 精确查询 、 我附近的人 实例 根据页码跳转无法使用 高亮

Bonree ONE 3.0:全域可观测 运维新境界

2024年8月16日&#xff0c;备受瞩目的Bonree ONE 3.0产品发布会上海站在上海中心大厦隆重举行。此次发布会以”Take IT Easy“——全域可观测&#xff0c;运维新境界为主题&#xff0c;博睿数据正式发布了一体化智能可观测平台Bonree ONE 3.0版本。Bonree ONE 3.0凭借领先的全域…

Vuepress,搭建自己的技术文档

Vuepress Vuepress用于构建静态站点&#xff0c;非常适合搭建技术文档。如果手头上有开源项目&#xff0c;或者公司内部有项目需要做官网&#xff0c;且官网中大部分都是介绍、用法之类的文章。那么Vuepress是不二选择&#xff01; 我们看到的一些项目的技术文档&#xff0c;…

动态创建 Delphi 按钮的完整指南:基于配置文件的 `TGridPanel` 实现

在 Delphi 开发中&#xff0c;我们经常需要根据不同的配置动态生成 UI 元素。本文将带你通过一个完整的示例&#xff0c;演示如何根据配置文件动态创建按钮&#xff0c;并将它们排列在一个 TGridPanel 中。每个按钮的标题、链接、颜色和大小都将从配置文件中读取。 “C:\myApp\…

MySQL基础架构和日志系统

MySQL基础架构和日志系统 1&#xff0c;逻辑架构图1.1 连接器1.2.1 查询缓存1.2.2 分析器1.3 优化器1.4 执行器 2&#xff0c;日志系统2.1 redo log&#xff08;重做日志&#xff09;2.2 binlog&#xff08;归档日志&#xff09;2.3 两阶段提交2.3.1 崩溃恢复机制是什么&#x…

I.MX6U交叉编译Qt项目-思维导图-学习笔记-基于正点原子阿尔法开发板

I.MX6U交叉编译Qt项目 安装交叉编译器 交叉编译器介绍 拷贝fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh至ubuntu 执行下面的指令修改脚本的权限&#xff0c;修改权限后可以看到此脚本颜色显示改变&#xff0c;说明修改成功 chmod…

QT事件机制理解

事件和信号 从硬件层来看: 事件就是一种中断&#xff0c; 中断的产生形式: 1.用户操控硬件所产生的中断。 2.由系统自身所产生的中断&#xff0c;比如说定时器。 这种中断由系统内核监控&#xff0c;由系统内核接收到中断并向CPU发出的执行请求就叫信号。所以说事件是信号产生…

异步交互技术Ajax

目录 一、同步交互和异步交互 二、Ajax 1.概述 2.如何实现ajax请求 三、异步传输数据乱码的问题 regist.html页面代码 服务端代码处理 一、同步交互和异步交互 同步交互&#xff1a;在同步交互中&#xff0c;参与的各方在同一时间进行交流。请求一项操作后&#xff0c;发…

这样理解嵌入式术语

1.裸机开发&#xff1a;n个人拉屎&#xff0c;先进去一个拉完&#xff0c;下一个再来&#xff1b; 2.看门狗&#xff1a;如果有人拉完屎还占着茅坑刷视频&#xff0c;把他拖出去 3.中断系统&#xff1a;n个人拉屎&#xff0c;先进去的拉完&#xff0c;下一个再来。如果有拉肚…

陪跑案例 | 德国营养师吴迪:从胖妹逆袭塑形导师!公开首场发售秘籍

有目标&#xff0c;有心力的老师&#xff0c;一旦找对方法和团队&#xff0c;能够化解99%的问题。 今天&#xff0c;创客匠人【陪跑案例故事】专栏推出第四期内容&#xff0c;为大家介绍【梦想身型健康学院】平台创始人吴迪老师的陪跑故事。 吴迪老师是梦想身型训练营创始人、德…

海外媒体投稿:5个软文代发推广入门技巧

1. 软文代发概述 软文代发是一种通过第三方渠道发布软文的推广方式。它可以帮助小白快速上手推广&#xff0c;提高品牌知名度、产品销量等。软文代发不仅能够吸引更多的目标用户&#xff0c;还能提高网站的流量和转化率&#xff0c;从而带来更多的商机。 2. 明确目标受众和需求…

【vue讲解:ref属性、动态组件、插槽、vue-cli创建项目、vue项目目录介绍、vue项目开发规范、es6导入导出语法】

0 ref属性&#xff08;组件间通信&#xff09; # 1 ref属性放在普通标签上<input type"text" v-model"name" ref"myinput">通过 this.$refs[myinput] 拿到的是 原生dom对象操作dom对象&#xff1a;改值&#xff0c;换属性。。。# 2 ref属…

Java项目集成RocketMQ

文章目录 1.调整MQ的配置1.进入bin目录2.关闭broker和namesrv3.查看进程确认关闭4.编辑配置文件broker.conf&#xff0c;配置brokerIP15.开放端口109116.重新启动1.进入bin目录2.启动mqnamesrv和mqbroker1.启动 NameServer 并将输出重定向到 mqnamesrv.log2.**启动 Broker 并将…

YouTube最好用的翻译插件

相信很多同学和我一样&#xff0c;想看YouTube视频时发现基本上都说英文&#xff0c;以我的英文水平&#x1f923;去观看真是一言难尽&#xff0c;所以就想着看能不能在谷歌浏览器上找一个插件来进行翻译&#xff0c;结果还真让我找到了一个不错的Youtube翻译插件&#xff0c;它…

【数据结构】队列的实现

0. 前言 上期博客给大家讲解了 栈 以及 栈的实现&#xff0c;今天再给大家讲一个特殊的顺序表结构&#xff0c;那就是队列&#xff01; 下面就进入正题&#xff01;一起学习一下吧&#xff01; 1. 队列 1.1 队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&…

多媒体技术及应用课程思政网站

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括多媒体技术及应用课程思政网站的网络应用&#xff0c;在外国多媒体技术及应用课程思政已经是很普遍的方式&#xff0c;不过国内的多媒体技术及应用课程思政可能还处于起…

WPF Mvvm

了解MVVM 什么是MVVM&#xff1a;一种设计模式 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人…

网络招商是什么意思,主要干什么工作?

互联网时代&#xff0c;网络招商&#xff0c;已经是企业不可缺少的一部分&#xff0c;这篇文章&#xff0c;详细为大家分享&#xff0c;网络招商的意思&#xff0c;以及主要工作内容&#xff01; 一、网络招商意思 就是利用互联网进行招商的一种方式&#xff0c;借助互联网的…