当前位置: 首页 > news >正文

LeetCode2.两数相加

一看完题,我的想法是先算出这两个链表表示的数,然后相加,然后把这个数一位一位的分配给第三个数组,这种方法应该很简单但是要遍历三次数组,于是我就想直接一遍遍历,两个链表同时往后面遍历,把这两个数的和给第三个链表,如果有进位,下一个数加1;但是写完之后出现的问题,因为我的循环是先创建下一个链表然后,指针指向这个链表,然后再进行循环,但是这样就回造成最后面多了一个节点,我想改进一下的但是想不出来,就只能再遍历一遍把最后一个节点删除了,这样算法也不是很优了,以下是我的代码:

lass Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode h1 = l1;ListNode h2 = l2;if(h1 == null)return h2;if(h2 == null)return h1;ListNode h3 = new ListNode();ListNode l3 = h3;int jinwei=0;while(h1 !=null || h2!=null){int num1=0;int num2=0;if(h1!=null){num1 = h1.val;h1=h1.next;}if(h2!=null){num2 = h2.val;h2=h2.next;}int sum = num1+num2+jinwei;h3.val = sum % 10;jinwei = sum > 9 ? 1 : 0;h3.next = new ListNode(jinwei);h3 = h3.next;}h3 = l3;while(l3.next.next !=null){l3=l3.next;}if(l3.next.val == 0)l3.next=null;return h3;}}

然后我觉得这个算法还不如我一开始得想法,于是我就按照一开始得想法写了个代码,就是先算出他们表示那个数,然后和按位分给第三个数组,于是写下了这个代码:

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {long sum = getValue(l1) + getValue(l2);if(sum == 0)return new ListNode(0);ListNode h3 = new ListNode();ListNode l3 = h3;while(sum != 0){h3.next = new ListNode();h3.next.val = (int)(sum % 10);sum = sum/10;h3 = h3.next;}return l3.next;}public long getValue(ListNode l){int pos =0;long value = 0;while(l !=null){value+=Math.pow(10,pos)*l.val;pos++;l=l.next;}return value;}}

前面得测试用例都过了,没想到后面那么大直接溢出了,

还是看看题解吧,题解的方法和我的方法差不多,但是它是用了一个判段是不是head来创建链表,然后拿到一个和就new 一个next节点并把和给它,然后当前指针移到他的下一个指针,如果遍历完了之后还有进位就再创建一个节点,并赋值1。我的是每次都会多创建一个节点,之后再遍历一次,如果最后那个节点是0就删了,如果是1就不删,所以我多了一遍遍历链表的过程。以下是题解代码:

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head = null, tail = null;int carry = 0;while (l1 != null || l2 != null) {int n1 = l1 != null ? l1.val : 0;int n2 = l2 != null ? l2.val : 0;int sum = n1 + n2 + carry;if (head == null) {head = tail = new ListNode(sum % 10);} else {tail.next = new ListNode(sum % 10);tail = tail.next;}carry = sum / 10;if (l1 != null) {l1 = l1.next;}if (l2 != null) {l2 = l2.next;}}if (carry > 0) {tail.next = new ListNode(carry);}return head;}
}

相关文章:

LeetCode2.两数相加

一看完题,我的想法是先算出这两个链表表示的数,然后相加,然后把这个数一位一位的分配给第三个数组,这种方法应该很简单但是要遍历三次数组,于是我就想直接一遍遍历,两个链表同时往后面遍历,把这…...

Linux编译过程与交叉编译

一.GCC由来 GCC(GNU编译器套件)是一个自由开源的编程工具集,用于编译和链接C、C和其他编程语言的程序。它由理查德斯托曼(Richard Stallman)和其他自由软件基金会(Free Software Foundation)的…...

MediaPipe+OpenCV 实现实时手势识别(附Python源码)

MediaPipe官网:https://developers.google.com/mediapipe MediaPipe仓库:https://github.com/google/mediapipe 一、MediaPipe介绍 MediaPipe 是一个由 Google 开发的开源跨平台机器学习框架,用于构建视觉和感知应用程序。它提供了一系列预训…...

为什么选择C/C++内存检测工具AddressSanitizer?如何使用AddressSanitizer?

目录 1、C程序中的内存问题 2、AddressSanitizer是什么? 3、AddressSanitizer内存检测原理简述 3.1、内存映射 3.2、插桩 4、为什么选择AddressSanitizer? 4.1、Valgrind介绍 4.2、AddressSanitizer在速度和内存方面为什么明显优于Valgrind 4.3…...

获取vue当前页面url问号后面的参数

除了使用 window.location.search 或 Vue Router 的 $route.query 来获取 URL 问号后面的参数之外,您还可以使用 JavaScript 中的正则表达式来解析 URL 中的参数部分。以下是一个示例: // 获取当前页面的完整 URL const currentURL window.location.hre…...

Linux编程之线程池的设计与实现

Linux编程之线程池的设计与实现(C98) 代码 假设服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是空间换时间, 即“浪费”服务器的硬件资源,以换取其运行效率。 提升服务器性能的一个重要方法就是…...

stm32---定时器输入捕获

一、输入捕获介绍 在定时器中断实验章节中我们介绍了通用定时器具有多种功能,输入捕获就是其中一种。 STM32F1除了基本定时器TIM6和TIM7,其他定时器都具有输入捕获功能 。输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获&#xf…...

打造生产级Llama大模型服务

对于任何想要尝试人工智能或本地LLM,又不想因为意外的云账单或 API 费用而感到震惊的人,我可以告诉你我自己的旅程是如何的,以及如何开始使用廉价的消费级硬件执行Llama2 推理 。 这个项目一直在以非常活跃的速度发展,这使得它非…...

Acwing 828. 模拟栈

Acwing 828. 模拟栈 题目要求思路讲解代码展示 题目要求 思路讲解 栈&#xff1a;先进后出 队列&#xff1a;先进先出 代码展示 #include <iostream>using namespace std;const int N 100010;int m; int stk[N], tt;int main() {cin >> m;while (m -- ){string o…...

初识Docker

文章目录 Docker安装Docker简介1.什么是虚拟化、容器化?2. 为什么需要虚拟化、容器化&#xff1f;3. 虚拟化的实现方式主机虚拟化的实现方式容器虚拟化实现 4. 虚拟机和Docker的区别 Docker安装 基于Centos7进行安装 1.确认系统版本和CPU架构&#xff0c;Centos7的x86_64架构…...

HTTPS Tomcat Servlet 博客系统 软件测试的概念 Linux

第 1 题&#xff08;多选题&#xff09; 题目名称&#xff1a; 以下关于http和https说法正确的是 题目内容&#xff1a; A .http是超文本传输协议 B .https是超文本传输安全协议 C .http是明文传输 D .https是加密传输 第 2 题&#xff08;单选题&#xff09; 题目名称…...

​云南财经大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作

​云南财经大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作...

shopee——排序模型AUC还能涨吗?

文章目录 CBMRMultiCBMRSample Weight Assignment多任务推荐模型 CBMR MultiCBMR Sample Weight Assignment Click-aware Structure Transfer with Sample Weight Assignment for Post-Click Conversion Rate Estimation 每个用户的top-k 邻居每个商品的top-k 邻居平滑处理并构…...

长城网络靶场第三题

关卡描述&#xff1a;1.oa服务器的内网ip是多少&#xff1f; 先进行ip统计&#xff0c;开始逐渐查看前面几个ip 基本上都是b/s&#xff0c;所以大概率是http&#xff0c;过滤一下ip 第一个ip好像和oa没啥关系 第二个ip一点开就是 oa&#xff0c;应该就是他了。 关卡描述&a…...

Java“牵手”虾皮商品列表页数据采集+虾皮商品价格数据排序,虾皮API接口申请指南

虾皮商城是一个在线电子商务平台&#xff0c;总部设在新加坡&#xff0c;隶属于Sea Limited&#xff08;冬海集团&#xff0c;简称为Sea&#xff09;。虾皮商城于2015年在新加坡成立以来&#xff0c;业务范围辐射新加坡、马来西亚、菲律宾、泰国、越南、巴西等10余个市场1。拥有…...

Pyspark综合案例(pyspark安装和java运行环境配置)

一、RDD对象 PySpark支持多种数据的输入&#xff0c;在输入完成后&#xff0c;都会得到一个&#xff1a;RDD类的对象 RDD全称为&#xff1a;弹性分布式数据集&#xff08;Resilient Distributed Datasets&#xff09; PySpark针对数据的处理&#xff0c;都是以RDD对象作为载…...

虚拟机突然无法访问外部网络的现象集合

现场还原 虚拟机突然无法访问外部网络 ping 8.8.8.8的时候显示网络不可达 ping 8.8.8.8ping www.baidu.com&#xff08;报&#xff1a;未知的名称或服务或请求超时&#xff09; ping www.baidu.comyum操作 也提示错误&#xff1a;为仓库 ‘appstream’ 下载元数据失败 : C…...

国庆中秋特辑(一)浪漫祝福方式 用循环神经网络(RNN)或长短时记忆网络(LSTM)生成祝福诗词

目录 一、使用深度学习中的循环神经网络&#xff08;RNN&#xff09;或长短时记忆网络&#xff08;LSTM&#xff09;生成诗词二、优化&#xff1a;使用双向 LSTM 或 GRU 单元来更好地捕捉上下文信息三、优化&#xff1a;使用生成对抗网络&#xff08;GAN&#xff09;或其他技术…...

【入门篇】ClickHouse 的安装与配置

文章目录 0. 前言ClickHouse的安装1. 添加 ClickHouse 的仓库2. 安装 ClickHouse3. 启动 ClickHouse 服务器4. 使用 ClickHouse 客户端 ClickHouse的配置 1. 详细安装教程1.1. 系统要求1.1. 可用安装包 {#install-from-deb-packages}1.1.1. DEB安装包1.1.1. RPM安装包 {#from-r…...

为了工作刷题

1.同步通信和异步通信有什么区别&#xff1f;UART、SPI和I2C分别属于什么类型的通信方式&#xff1f; 同步通信&#xff1a;在同步通信中&#xff0c;发送方和接收方之间使用共享的时钟信号来同步数据传输。发送方按照时钟信号的边沿&#xff08;上升沿或下降沿&#xff09;将数…...

linux jenkins2.414.1-1.1版本安装

文章目录 前言一、rpm文件下载二、安装jenkins2.1.升级jdk1.82.2安装jenkins2.3 启动服务2.4 使用密码登录2.5 修改插件源2.6 汉化插件安装演示 总结 前言 之前也安装过jenkins&#xff0c;但是那个版本是2.1的&#xff0c;太老了很多插件都不支持&#xff0c;现在安装目前为止…...

嵌入式学习笔记(33)S5PV210的第二阶段处理过程

&#xff08;1&#xff09;第一个过程&#xff0c;怎么找到具体是哪个中断&#xff1a;S5PV210中因为支持的中断源很多&#xff0c;所以直接设计了4个中断寄存器&#xff0c;每个32位&#xff0c;每位对应一个中断源。&#xff08;理论上210最多可以支持128个中断源&#xff0c…...

学校项目培训之Carla仿真平台之安装Carla

官网&#xff1a;http://carla.org/ 写在前面 由于安装都写了很多东西&#xff0c;所以我单独将安装弄出来记录一下。 如果你在安装9.12版本的时候遇到了很多问题&#xff0c;你可以考虑以下几点&#xff1a; - 楼梯可能不太行&#xff0c;需要更换&#xff0c;这是我实践得到的…...

什么是MQ消息队列及四大主流MQ的优缺点(个人网站复习搬运)

什么是&#xff2d;&#xff31;消息队列及四大主流&#xff2d;&#xff31;的优缺点 小程序要上一个限时活动模块&#xff0c;需要有延时队列&#xff0c;从网上了解到用RabbitMQ可以解决&#xff0c;就了解了下 MQ 并以此做记录。 一、为什么要用 MQ 核心就是解耦、异步和…...

Learn Prompt-什么是ChatGPT?

ChatGPT&#xff08;生成式预训练变换器&#xff09;是由 OpenAI 在2022年11月推出的聊天机器人。它建立在 OpenAI 的 GPT-3.5 大型语言模型之上&#xff0c;并采用了监督学习和强化学习技术进行了微调。 ChatGPT 是一种聊天机器人&#xff0c;允许用户与基于计算机的代理进行对…...

高德地图实现-微信小程序地图导航

效果图&#xff1a; 一、准备阶段 1、在高德开放平台注册成为开发者2、申请开发者密钥&#xff08;key&#xff09;。3、下载并解压高德地图微信小程序SDK 高德开放平台&#xff1a; 注册账号(https://lbs.amap.com/)) 申请小程序应用的 key 应用管理(https://console.ama…...

你已经应用了哪种服务注册和发现的模式呢?

前面历史文章中我们有说过关于微服务的注册和发现&#xff0c;并以 etcd 作为简单例子简单阐述了关于服务注册和发现的应用 那么日常工作中&#xff0c;你已经使用了服务注册和发现的哪些模式呢&#xff1f; 服务注册和发现的作用 首先&#xff0c;简单说明一下服务注册和发…...

Python爬虫技术在SEO优化中的关键应用和最佳实践

大家好&#xff01;今天我要和大家分享一个关于SEO优化的秘密武器&#xff1a;Python爬虫技术。在这篇文章中&#xff0c;我们将探讨Python爬虫在SEO优化中的关键应用和最佳实践。无论您是一名SEO专家、网站管理员&#xff0c;还是对优化网站曝光度感兴趣的初学者&#xff0c;都…...

基于支持向量机的试剂条图像识别,基于SVM的图像识别,SVM的详细原理,Libsvm工具箱使用注意事项

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 代码下载链接: 基于支持向量机SVM的试剂条图像自动识别,基于SVM的试剂条图像自动读取资源-CSDN文库 https://download.csdn.net/download/abc991835105/88215944 SVM应用实例…...

PbootCMS在搭建网站

1、打开网站 https://www.pbootcms.com/ 2、点击 “本站” 下载最新的网站代码 3、在本地laragon/www下创建目录&#xff08;hejuwuye&#xff09;&#xff0c;并将代码放进去 4、创建本地数据库&#xff0c;数据库名称为&#xff1a; hejuwuye&#xff0c;然后将static/bac…...

公司网站打不开不知道谁做的/软文代写兼职

一、Java混合部分 1、对于同一类中的两个方法 , 在判断它们是不是重载方法时 , 肯定不考虑&#xff08; &#xff09; A、参数个数 B、参数类型 C、返回值类型 D、参数顺序 解析&#xff1a;C &#xff08;1&#xff09;方法的重载&#xff1a; 方法重载的定义&#xff1a;同一…...

手机上可视化编程app/成都市seo网站公司

dLua类似gdb的lua调试器特性支持Linux平台C编写通过附加到其他进程上&#xff0c;进行调试gdb风格的调试指令&#xff0c;包括设置条件断点、查看变量、设置变量编译下载编译安装lua用脚本编译dlua&#xff0c;生成dlua与dluaagent.so&#xff0c;dlua是控制台&#xff0c;dlua…...

网站做app服务端/互联网推广渠道

转载于:https://www.cnblogs.com/luoyinjie/p/10683853.html...

用动易做的诗歌协会网站/公司网址

仅以此文来记录正式环境下还原数据库的尿崩时刻。 1. 还原大法一&#xff1a; 首先&#xff0c;新建个数据库&#xff1b; 再随随便便建个表&#xff0c;没毛病。 备份一下 最好添加到你能记住的目录 新建个School1库&#xff0c;用来放另来放被还原的库。按照下列步骤操作。…...

windows 没有wordpress/竞价网络推广培训

Step1. 注册账号注册地址&#xff1a;https://user.accesshub.cn/#/signUpStep2. 登陆管理控制台登陆方式一&#xff1a;在 https://user.accesshub.cn/#/loginTo 输入管理平台域名跳转到登陆页面登陆方式二&#xff1a;在浏览器直接输入管理平台域名地址登陆&#xff0c;例如 …...

做网站常规语言/seo推广网络

大家好&#xff0c;我是小马老师。 本文介绍lammps计算CNA的方法。 CNA&#xff08;公共邻居分析&#xff09;可用来分析原子周围局部晶体结构&#xff0c;如FCC、BCC、HCP以及晶体缺陷。 在ovito后处理软件中有CNA的计算&#xff0c;但这个计算在单个原子的体系比较准&#xf…...