代码随想录算法训练营第四天|24. 两两交换链表中的节点 |19.删除链表的倒数第N个节点 | 面试题 02.07. 链表相交 | 142.环形链表II

24. 两两交换链表中的节点

文档讲解:代码随想录

视频讲解:帮你把链表细节学清楚! | LeetCode:24. 两两交换链表中的节点_哔哩哔哩_bilibili

1. 第一想法是不知道这个题如何做,知道有改变指针这个操作。

2. 双指针也太好用了,用双指针整个过程就是一个双指针移动加修改指针的过程,就像织毛衣一样的感觉。这里竟然要保存两个临时指针变量。

3.要保存两个临时指针变量,结合示意图分析实现起来还可以,主要是指针赋值那里想清楚,输入用例一遍过。

4.分析能否用双指针的意识,这个编程题用了半个小时左右。

19.删除链表的倒数第N个节点

文档讲解:代码随想录

视频讲解:链表遍历学清楚! | LeetCode:19.删除链表倒数第N个节点_哔哩哔哩_bilibili

1. 第一想法先计算得到链表的总长度,根据倒数多少个节点计算正向应该遍历多少个节点count,然后正向遍历到了待删除结点的前一个结点执行删除操作。

2.用双指针正好表示了倒数多少个这个概念,先让快指针移动n+1个位置(不是移动n位是因为用了虚拟头节点,然后需要在待删除结点的前一个节点才能执行操作),然后一起移动快慢指针,当快指针到达链表末尾的位置,慢指针在的位置正好是待删除的元素的前一个节点位置,执行删除操作即可。

3.快慢指针开始时指向虚拟头节点,然后可以通过一个示意图来推导一下执行n+1才是对应待删除节点的前一个位置,一起移动快慢指针循环的边界条件时fast指针是否为空,而不是fast.next,可以想一想fast指针应该是在最后一个节点的位置,此时fast指针的下一个节点为null,不能进入循环执行移动操作,正好满足fast指针在最后一个节点位置。

4.一起移动快慢指针循环的边界条件时fast指针是否为空,而不是fast.next,可以想一想fast指针应该是在最后一个节点的位置,此时fast指针的下一个节点为null,不能进入循环执行移动操作,正好满足fast指针在最后一个节点位置。这个题目用了接近一个小时的时间。

面试题 02.07. 链表相交

文档讲解:代码随想录

1.看不懂题

2.再回去读题,大致懂了是需要先找出最短的链表,最极端的就是短的链表头节点就是相交的位置,这种链表相交可以节省计算机的存储空间,找到这两个链表长度的差值dista后,将长链表的cur指针向后移动这个差值(正数)个位置,然后从这里依次遍历长短链表,对应位置指针相同则返回,遍历完都没有找到指针相同的位置则返回null.

3.根据链表长度不同执行了两端差不多的代码,后一段代码拷贝过来时没有将循环的条件改过来,导致用例报错。用了一个小时左右,主要时题干没有读懂。

142.环形链表II 

文档讲解:142. 环形链表 II - 力扣(LeetCode)

视频讲解:把环形链表讲清楚! 如何判断环形链表?如何找到环形链表的入口? LeetCode:142.环形链表II_哔哩哔哩_bilibili

1.不知道咋做

2.真聪明,又是双指针,数学证明有点多。

3.不熟悉这类需要数学推导证明的编程题,完全没有想到用数学方法。

4.数学推导证明完了,用结论写代码实现起来比较简单,这个题先背方法,一刷就先记得这个结论吧,先不追求掌握的很深入,二刷深入研究一下。

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

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

相关文章

学习分享-为什么把后台的用户验证和认证逻辑放到网关

将后台的用户验证和认证逻辑放到网关(API Gateway)中是一种常见的设计模式,这种做法在微服务架构和现代应用中有许多优势和理由: 1. 集中管理认证和授权 统一的安全策略 在一个包含多个微服务的系统中,如果每个服务…

优化扩散模型中的采样计划

在生成模型领域,扩散模型(Diffusion Models, DMs)因其卓越的生成质量而成为最新的技术趋势。但这些模型的一个关键缺点是它们的采样速度较慢,需要通过大型神经网络进行多次顺序函数评估。扩散模型通过一个称为采样计划的离散噪声水…

Golang | Leetcode Golang题解之第130题被围绕的区域

题目&#xff1a; 题解&#xff1a; var (dx [4]int{1, -1, 0, 0}dy [4]int{0, 0, 1, -1} ) func solve(board [][]byte) {if len(board) 0 || len(board[0]) 0 {return}n, m : len(board), len(board[0])queue : [][]int{}for i : 0; i < n; i {if board[i][0] O {q…

xmind父主题快捷键Ctrl+Enter

xmind父主题快捷键 CtrlEnter

实验八、地址解析协议《计算机网络》

水逆退散&#xff0c;学业进步&#xff0c;祝我们都好&#xff0c;不止在夏天。 目录 一、实验目的 二、实验内容 &#xff08;1&#xff09;预备知识 &#xff08;2&#xff09;实验步骤 三、实验小结 一、实验目的 完成本练习之后&#xff0c;您应该能够确定给定 IP 地…

MySQL之查询性能优化(十二)

查询性能优化 优化COUNT()查询 4.使用近似值 有时候某些业务场景并不要求完全精确的COUNT值&#xff0c;此时可以用近似值来代替。EXPLAIN出来的优化器估算的行数就是一个不错的近似值&#xff0c;执行EXPLAIN并不需要真正地去执行查询&#xff0c;所以成本很低。很多时候&am…

【消灭星星game】

“消灭星星”&#xff08;PopStar&#xff09;是一款非常受欢迎的益智游戏&#xff0c;游戏目标是在一个网格中消除相同颜色的星星&#xff0c;一次消除的星星数量越多&#xff0c;得分越高。以下是一个简化版的消灭星星游戏的Python代码示例&#xff0c;用于演示基本的游戏逻辑…

智能数据分析(2)Lecture 9-11

Lecture 9: Feature Analysis and Dimensionality Reduction 特征选择&#xff08;Feature Selection&#xff09; 特征选择的定义与目标 定义&#xff1a;特征选择指的是从原始特征集中选择一个子集&#xff0c;以减少特征的数量并提升模型的性能。选择的特征子集应当能最好…

【python】python商业客户流失数据模型训练分析可视化(源码+数据集+课程论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

基本通信设备

1、 网卡 &#xff08;1&#xff09;负责将终端机连入网络 &#xff08;2&#xff09;计算机通过网卡接入网络&#xff08;有线、无线&#xff09; 2、 交换机 &#xff08;1&#xff09;连接终端机&#xff0c;构建网段 &#xff08;2&#xff09;负责网段内…

CentOS 7基础操作08_Linux查找目录和文件

1、which命令——查找用户所执行的命令文件存放的目录 which命令用于查找Linux命令程序并显示所在的具体位置.其搜索范围主要由用户的环境变量PATH决定(可以执行言echo sPATH”命令查看),这个范围也是Linux操作系统在执行命令或程序时的默认搜索路径。 which命令使用要查找的命…

论文复现:Track to Detect and Segment: An Online Multi-Object Tracker

论文下载链接&#xff1a;链接 简单介绍&#xff1a;大多数在线多目标跟踪器在神经网络中独立执行目标检测&#xff0c;无需任何跟踪输入。在本文中提出了一种新的在线联合检测和跟踪模型TraDeS&#xff08;TRAck to DEtect and Segment&#xff09;&#xff0c;利用跟踪线索…

一个例子了解c++的指针数组和数组指针

c的指针数组和数组指针容易混淆&#xff0c;所以我们加个字&#xff1a; 指针的数组和数组的指针 所谓指针数组&#xff0c;就是指针的数组&#xff0c;就是由指针组成的数组。重点在后面的两个字&#xff1a;数组 所谓数组指针&#xff0c;就是数组的指针&#xff0c;就是指向…

基于协调过滤算法商品推荐系统的设计#计算机毕业设计

基于协调过滤算法商品推荐系统的设计#计算机毕业设计 管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;商品管理&#xff0c;论坛管理&#xff0c;商品资讯管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;论坛&#xf…

MySQL-二进制部署-配置systemctl管理脚本(一)

一 二进制部署MySQL 参考二进制部署mysql 二 MySQL启动&关闭命令 mysqld_sqfe 是 mysqld 父进程&#xff0c;用那个启动都可以 ##启动命令 /usr/local/mysql/bin/mysqld_safe --defaults-file/data/mysql/conf/my.cnf & /usr/local/mysql/bin/mysqld --defaults-fil…

数字校园的优势有哪些

数字化时代下&#xff0c;数字校园已成为教育领域一股显著趋势。数字校园旨在借助信息技术工具对传统校园进行改造&#xff0c;提供全新的教学、管理和服务方式。那么&#xff0c;数字校园究竟具备何种优势&#xff1f;现从三个方面为您详细介绍。 首先&#xff0c;数字校园为教…

STM32项目分享:智能家居(机智云)系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板及元器件图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.c…

如何使用ERC-20与Sui Coin标准创建Token

区块链使用tokens作为传递价值的基本手段。它们可以是区块链的原生交换单位&#xff0c;也可以是应用中的交换单位&#xff0c;甚至可以在游戏世界中用作货币。tokens还支持Sui和其他区块链上的强大DeFi活动。 以太坊使用ERC-20标准来创建tokens&#xff0c;借用智能合约&…

步态控制之ZMP

零力矩点(Zero Moment Point,ZMP)概述 ZMP步态控制是人形机器人步态控制中的一个关键概念,旨在确保机器人在行走或站立过程中保持平衡。ZMP是指机器人接触面上力矩为零的点,确保在该点上机器人不会倾倒。这个示例展示了ZMP步态控制的基本原理和实现方法。实际应用中,机器…

Redisson 源码分析 —— 调试环境搭建

本文基于 Redisson 3.11.4-SNAPSHOT 版本 依赖工具 MavenGitJDKIntelliJIDEA 源码拉取 从官方仓库 https://github.com/redisson/redisson Fork 出属于自己的仓库。 为什么要 Fork &#xff1f;既然开始阅读、调试源码&#xff0c;我们可能会写一些注释&#xff0c;有了自…