Leetcode day1.两数相加(2) 2.整数反转(7)

注意点:1.链表会出现其中一个已经为空,另一个缺还是有数据

2.相加时会出现进位操作

解法一、 利用队列的性质(基础不好 第一时间想到的)

很像队列的性质,先进先出,逐步计算。但是最后要换成链表样式。

/*** Definition for singly-linked list.* function ListNode(val, next) {*     this.val = (val===undefined ? 0 : val)*     this.next = (next===undefined ? null : next)* }*/
/*** @param {ListNode} l1* @param {ListNode} l2* @return {ListNode}*/
var addTwoNumbers = function(l1, l2) {let p=l1;let q=l2;let s=[];let count=0;while(p!==null||q!==null){let val1=p!==null?p.val:0;let val2=q!==null?q.val:0;let temp = val1+val2+count;if(temp<10){s.push(temp);count=0;}else{s.push(temp%10);count=Math.floor(temp/10);}if(p!==null) p=p.next;if(q!==null) q=q.next;}if(count>0) s.push(count);let dummyHead = new ListNode(0);let curr = dummyHead;while (s.length > 0) {curr.next = new ListNode(s.shift());curr = curr.next;}return dummyHead.next;};

解法二、链表相加(比较好)

注意,在返回结果时,应该返回 l3.next 而不是 l3,因为 l3 是一个哑节点,它的下一个节点才是真正的结果链表的头节点。因为l3这个位置没有给值,第一个有值的是l3.next;l3.val是null。

/*** Definition for singly-linked list.* function ListNode(val, next) {*     this.val = (val===undefined ? 0 : val)*     this.next = (next===undefined ? null : next)* }*/
/*** @param {ListNode} l1* @param {ListNode} l2* @return {ListNode}*/
var addTwoNumbers = function (l1, l2) {const l3 = new ListNode(0);let p = l1;let q = l2;let k = l3;let count = 0;while (p || q) {const v1 = p ? p.val : 0;const v2 = q ? q.val : 0;let sum = v1 + v2 + count;count = Math.floor(sum / 10);k.next = new ListNode(sum % 10);if (p) p = p.next;if (q) q = q.next;k = k.next;}if(count){k.next=new ListNode(count);}return l3.next;
};

用栈就可以了 先进后出实现倒叙

/*** @param {number} * @return {number}*/
var reverse = function (a) {let stack= [];let result = 0;let x = Math.abs(a)let count = 0;while (x > 0) {stack.push(x % 10);  // 获取当前最低位的数字x = Math.floor(x / 10);  // 移除当前最低位的数字}while (stack.length > 0) {result = result + (stack.pop()) * Math.pow(10, count);count++;}if (a >= 0) return result;if (a < 0) return -result;};

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

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

相关文章

【大数据技术基础 | 实验十四】Kafka实验:订阅推送示例

文章目录 一、实验目的二、实验要求三、实验原理&#xff08;一&#xff09;Kafka简介&#xff08;二&#xff09;Kafka使用场景 四、实验环境五、实验内容和步骤&#xff08;一&#xff09;配置各服务器之间的免密登录&#xff08;二&#xff09;安装ZooKeeper集群&#xff08…

AndroidAutoSize实战教程:今日头条屏幕适配方案详解

如何在项目中结合 AndroidAutoSize 来进行今日头条屏幕适配&#xff0c;我会具体讲解如何用 AndroidAutoSize 实现屏幕适配&#xff0c;并结合 Kotlin 代码举例分析。 通过 AndroidAutoSize 库来实现屏幕适配&#xff0c;确保在不同的屏幕尺寸、分辨率、密度下&#xff0c;应用…

【贪心算法】贪心算法五

贪心算法五 1.跳跃游戏 II2.跳跃游戏3.加油站3.单调递增的数字 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.跳跃游戏 II 题目链接&…

【Axios】如何在Vue中使用Axios请求拦截器

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

《业务流程--穿越从概念到实践的丛林》读后感一:什么是业务流程

2、分类法 分类法并不强调流程的横向分段和纵向分段的结构化关系&#xff0c;只是提供了一个流程分类分级的层级结构&#xff0c;让用户可以将一个个离散的流程装进这个分类框架里&#xff0c; 这种思路的代表是APQC PCF. APQC分类方法的第一层级就是企业价值链模型&#xff0c…

4.5 TCP 报文段的首部格式

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言1 TCP 报文段的基本结构2 固定部分2.1 源端口与目的端口2.2 序号2.3 确认号2.4 数据偏移2.5 保留字段2.6 控制位2.7 窗口2.8 检验和2.9 紧急指针 3 可变部分3.1 选项3.2 填…

MySQL数据集成到广东省追溯平台的销售信息同步方案

销售信息同步--外购上报流程2&#xff1a;MySQL数据集成到广东省特殊食品电子追溯平台 在现代数据驱动的业务环境中&#xff0c;确保销售信息的准确性和及时性至关重要。本文将分享一个具体的技术案例&#xff0c;展示如何通过轻易云数据集成平台&#xff0c;将MySQL中的销售信…

Nginx配置https(Ubuntu、Debian、Linux、麒麟)

Ubuntu操作系统&#xff0c;Debian系统底层是Ubuntu&#xff0c;差异不大 ubuntu 安装nginx 1.安装依赖 sudo apt-get update sudo apt-get install gcc sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install zlib1g zlib1g-dev sudo apt-get install openssl lib…

【优选算法 二分查找】二分查找入门详解:二分查找 & 在排序数组中查找元素的第一个和最后一个位置

二分查找 题目描述 题目解析 暴力解法 我们可以从左往右遍历一次数组&#xff0c;如果存在 target 则返回数组的下标&#xff0c;否则返回 -1&#xff1b; 时间复杂度 O(N)&#xff0c;因为没有利用数组有序的特点&#xff0c;每次比较只能舍弃一个要比较的数&…

Linux镜像文件制作

本文介绍Linux镜像文件制作。 嵌入式系统开发调试及量产需要涉及到Linux镜像文件的制作&#xff0c;本文结合一个实例简要介绍Linux镜像文件的制作。 1.确定磁盘空间布局 在制作镜像文件之前应提前确定好磁盘空间布局&#xff0c;也就是地址空间划分&#xff0c;如这里的磁盘…

时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式 基本介绍 时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x x(1:5120); % 本数据只选择5120个点进行分析 fs 6400 ; % 数据采样频…

vue3 vite ts day1

创建项目&#xff1a; npm init vitelatest 来创建项目 第二布&#xff1a; y 第三步&#xff1a;project name &#xff1a;项目名称 第四步&#xff1a;select a framework 选择框架 熟悉那种选择那种&#xff0c;当前选择vue 第五步&#xff1a;select a variant&…

elasticsearch-7.14.0集群部署+kibana

1、修改系统参数 用户对软件的内存和硬盘使用权限 vim /etc/security/limits.conf * soft nproc 655350 * soft nofile 655350 * hard nproc 655350 * hard nofile 655350修改最大线程数 vim /etc/sysctl.conf vm.max_map_count262144配置用户最大的线程数 vim /etc/security/…

深度学习 | pytorch + torchvision + python 版本对应及环境安装

Hi&#xff0c;大家好&#xff0c;我是半亩花海。要让一个基于 torch 框架开发的深度学习模型正确运行起来&#xff0c;配置环境是个重要的问题&#xff0c;本文介绍了 pytorch、torchvision、torchaudio 及 python 的对应版本以及环境安装的相关流程。 目录 一、版本对应 二…

如何学习游戏外挂编程

学习游戏外挂编程需要掌握一定的编程基础和相关知识。以下是一些学习游戏外挂编程的步骤和建议&#xff1a; 学习编程基础&#xff1a;首先&#xff0c;你需要学习一种编程语言&#xff0c;比如C或者Python。了解基本的编程概念&#xff0c;如变量、函数、循环和条件语句等。这…

LearnOpenGL学习(高级OpenGL -- 深度测试,模板测试,)

深度测试 深度缓冲用来防止被阻挡的面渲染到其他面的前面&#xff0c;深度缓冲就像颜色缓冲&#xff0c;在每个片段中储存了信息&#xff0c; 当深度测试(Depth Testing)被启用的时候&#xff0c;OpenGL会将一个片段的深度值与深度缓冲的内容进行对比。OpenGL会执行一个深度测…

MYSQL REPLACE INTO, INSERT IGNORE ON DUPLICATE 区别:

REPLACE INTO 不存在插入&#xff0c;存在删除旧的数据&#xff0c;插入一条新数据&#xff0c;返回新插入的自动编号&#xff1a; replace into&#xff1a;和 ignore 以及 duplicate 截然不同&#xff0c;不存在插入&#xff0c;存在则删除旧的&#xff0c;插入新的。不会保…

4. 设计模式分类

4.1 创建型模式 这类模式提供创建对象的机制,能够提升已有代码的灵活性和可复用性。 序 号 类 型 业务场景 实现要点 1 工 厂 方 法 多种类型商品不同接口,统一发奖服 务搭建场景 定义一个创建对象的接口,让其子类自 己决定实例化哪一个工厂类,工厂模式 使其创建过程延迟…

【JS】一些奇怪的野生方法(持续更新...)

文章目录 一、样式类二、API类三、一些属性四、一些奇怪但常用的功能 一、样式类 屏幕的可用高度&#xff1a;window.screen.availHeight 二、API类 获取绝对值&#xff1a;Math.abs(aaa)stopPropagation()&#xff1a;阻止事件在DOM树中继续冒泡&#xff08;就是停止事件&a…

Java 反射:强大而灵活的魔法工具

一、什么是 Java 反射 Java 反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性。反射的本质是得到 Class 对象后&#xff0c;反向获取 Class 对象的各…