141/142题环形链表

请添加图片描述
本题返回环入口的位置。使用快慢指针,快指针每次移动两个,慢指针每次移动一个。设前一段距离是a,进入环内到slow和fast相遇的地点距离是b,环内剩下的距离是c,如图所示。

环的长度是b+c
慢指针移动距离是a+b
快指针移动距离是a+b+k(b+c)比慢指针多移动k圈,k为整数。

还有一层关系是快指针一次移动2个距离,慢指针一次移动一个,有快指针移动距离是慢指针2倍,有公式:2*(a+b) = a+b+k*(b+c)
化简得到a-c = (k-1)*(b+c)即slow和fast相遇时,有个指针p从头节点出发,与slow同一速度。当slow移动到环的入口时,p到入口的距离时环的倍数。即当slow和fast相遇时,有个节点从start出发,必然会和slow在入口处相遇,此时可以得到入口的位置。

class Solution {
public:ListNode *detectCycle(ListNode *head) {ListNode* fast = head; // ListNode* slow = head;while(fast != NULL){if(fast->next == nullptr || fast->next->next == nullptr){break;}else{fast = fast->next;fast = fast->next;}slow = slow->next;if(slow == fast){ListNode* s = head;while(s != slow){s = s->next;slow = slow->next;}return s;}}return nullptr;}
};

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

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

相关文章

Linux-2

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:linux基础之病毒编写(完结)_哔哩哔哩_bilibili 一、Linux目录介绍 /bin:二进制可执行命令 /etc:…

快速入门Zookeeper

Zookeeper ZooKeeper作为一个强大的开源分布式协调服务,扮演着分布式系统中至关重要的角色。它提供了一个中心化的服务,用于维护配置信息、命名、提供分布式同步以及提供组服务等。通过其高性能和可靠的特性,ZooKeeper能够确保在复杂的分布式…

SpringBoot环境下的共享汽车管理策略

3系统分析 3.1可行性分析 通过对本共享汽车管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本共享汽车管理系统采用SSM框架,JAVA作为开发语…

确定图像的熵和各向异性 Halcon entropy_gray 解析

1、图像的熵 1.1 介绍 图像熵(image entropy)是图像“繁忙”程度的估计值,它表示为图像灰度级集合的比特平均数,单位比特/像素,也描述了图像信源的平均信息量。熵指的是体系的混乱程度,对于图像而言&#…

什么是多因素身份验证(MFA)的安全性?

多因素身份验证(MFA)简介 什么是MFA 多因素身份验证(MFA)是一种安全过程,要求用户在授予对系统、应用程序或账户的访问权限之前提供两种或多种形式的验证。仅使用单个因素(通常是用户名和密码)保护资源会使它们容易受到泄露,添加…

特色3D打印机stm32迷你8轴双核心主板

我自己设计的3D打印机主板 1. 这是一块迷你的8轴主板, 主板尺寸为100mm*75mm, 使用一个8cm静音风扇散热足够了2. 这是一个带有保护的板子, 驱动上的gpio具有过压保护功能, 能够直接抗住24V的冲击, 意味着一个驱动炸了, 板子不烧, 并且其他的驱动也没事, 主板支持自动关机3. 8…

【LeetCode:3242. 设计相邻元素求和服务 + 模拟 + 哈希表】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

GIF图片格式详解(二)

gif历史请参考上一篇《GIF图片格式详解(一)》,或直接访问博客地址:https://blog.whatsroot.xyz/2023/12/16/all-about-gif/ 文件格式概述 GIF格式采用调色板模式,即有一个颜色表,每种颜色可以使用RGB24格…

TypeScript 基础语法及使用

文章目录 1、概述2、快速使用3、常用类型4、基础类型5、联合类型6、函数类型7、对象类型 & 接口interface 1、概述 TypeScript(简称 TS)是JavaScript的超集(继承了JS全部语法)是微软开发的开源编程语言,可以在任何…

linux---vi和vim快捷键

linux---vi和vim快捷键 1、vi2、vim 1、vi 普通模式(Normal Mode):i 进入插入模式(Insert Mode) x 删除光标所在位置的字符 dd 删除整行 yy 复制整行 p 粘贴 u 撤销 Ctrl r 重做 Shift G 快速移动光标到文件的最后…

深入了解决策树:机器学习中的经典算法

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

11月上海月赛题解报告(丙组)T1

棋盘距离 内存限制: 256 Mb时间限制: 1000 ms 题目描述 在一个棋盘上,有两颗棋子,一颗棋子在第 a 行第 b 列,另一个颗棋子在第 x 行第 y 列。 每一步,可以选择一个棋子沿行方向移动一个单位,或沿列方向移动一个单位&am…

基于Java Web的传智播客crm企业管理系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

【JAVA】Java基础—面向对象编程:类与对象-类的结构(属性、方法、构造方法)

属性用于描述对象的状态,通常以变量的形式存在。 方法定义了对象的行为,可以执行特定的操作或计算。 构造方法用于初始化对象,可以根据需要重载以支持不同的初始化方式。 1. 属性(字段) 属性是类的状态或特征&…

如何学习C++游戏开发

学习C游戏开发是一个涉及多个领域的复杂过程,包括编程、游戏设计、图形学等。 1. **学习C基础**: - 掌握C的基本语法和面向对象编程。 - 学习C标准库,特别是STL(标准模板库)。 2. **理解游戏开发概念**&#xf…

RabbitMQ 篇-深入了解 RabbitMQ 安装以及 SpringAMQP 的基础使用(声明队列和交换机、发送接收消息、配置 JSON 消息转化器)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 RabbitMQ 初识 1.1 RabbitMQ 安装 2.0 数据隔离 2.1 用户管理 2.2 virtual host 虚拟主机 3.0 SpringAMQP 3.1 RabbitMQ 配置 3.2 发送消息 3.3 接收消息 3.4 Wor…

基础归一化方法 数学理论及其matlab代码

归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为标量。在多种计算中都经常用到这种方法。以下是常见的基础归一化方法:Min-Max 归一化,Z-Score 归一化、小数定标归一化、…

计算机视觉算法

计算机视觉算法是人工智能领域中的重要技术之一,它使计算机能够“看”并理解图像或视频内容。以下是对计算机视觉算法的详细介绍: 一、定义与目标 计算机视觉算法是一组计算模型和数学方法的组合,旨在让计算机能够自动解析图像和视频中的信息…

【Elasticsearch】Elasticsearch集成Spring Boot

Elasticsearch集成Spring Boot 概述 Spring Data Elasticsearch 介绍一、环境初始化二、实战入门1、定义数据实体类2、定义Dao层3、框架集成-SpringData-集成测试-索引操作4、框架集成-SpringData-集成测试-文档操作5、框架集成-SpringData-集成测试-文档搜索 概述 Spring Data…

Kubernetes 调度器调度策略的资源分配不均问题如何解决?

Kubernetes 调度器调度策略的资源分配不均问题如何解决? 在 Kubernetes 中,调度器调度策略可能会导致资源分配不均的问题,可以通过以下几种方法来解决: 一、资源配额和限制 设置命名空间资源配额: 可以为不同的命名空间设置资源配额,限制该命名空间可以使用的 CPU、内存…