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

【力扣每日一题】2023.7.30 环形链表2

题目:

示例:

分析:

这道题属于是那种知道解法就很简单,不知道解法就很难独立想出来的那种,我们只需要稍微记住这类题的固定解法就可以。

所以接下来我先说解法,再解释为什么解法可以解出来。

那么我们都知道使用快慢指针可以找出一个链表是否有环(不知道的去看看我昨天的每日一题题解),我们需要找出这个环的路口,我们在快慢指针相遇的时候就可以判断出链表有环,并且开始寻找。

我们将快指针移动回链表的开头,并且将快指针的速度调整为每次移动一格,然后再让快慢指针再次移动,直到它们相遇,相遇的位置就是环的入口。

这看起来有些不可思议是吗,怎么会这么简单,而且怎么就可以知道它们再次相遇的点就是环入口了,小朋友你是否有很多问号???

那么这涉及到了数学,因此这类题我的建议就是记住对应的模板,不要深究怎么样才可以在下次遇到类似的题目时自己可以从零开始推导出来,这不是普通人能干的

首先我们把链表开头到环入口的这段距离称为A,把环入口到快慢指针第一次相遇的地方的这段距离称为B,把快慢指针第一次相遇的地方直走走回环的入口的这段距离称为C,接下来可以开始推导了。

我们知道,快指针走过的的路程等于A+B+C+B,而慢指针走过的路程等于A+B。

我们又知道,每次快指针移动两格,慢指针移动一格,因此快指针走过的路程是慢指针的两倍。

我们就可以得到这样的式子:

A+B+C+B = 2*(A+B) = A+A+B+B

 化简一下就变成了:

C=A

 神奇吗同志们,从链表到环入口的距离(A)就等于在快慢指针第一次相遇的地方再次走到环入口,因此我们之前的操作就可以得到解释了,让慢指针接着走,然后让快指针调整速度以后从头开始走,走到它们第二次相遇,那就是环的入口了。

代码:

class Solution {
public:ListNode *detectCycle(ListNode *head) {if(head==nullptr) return nullptr;//快慢指针ListNode* fast=head;ListNode* slow=head;while(fast!=nullptr && fast->next!=nullptr){//快指针每次移动两次,慢指针每次移动一次slow=slow->next;fast=fast->next->next;//如果相遇则是有环,开始寻找入口if(fast==slow){fast=head;while(fast!=slow){fast=fast->next;slow=slow->next;}return fast;}}return nullptr;}
};

相关文章:

【力扣每日一题】2023.7.30 环形链表2

题目: 示例: 分析: 这道题属于是那种知道解法就很简单,不知道解法就很难独立想出来的那种,我们只需要稍微记住这类题的固定解法就可以。 所以接下来我先说解法,再解释为什么解法可以解出来。 那么我们都…...

Flink状态的理解

Flink是一个带状态的数据处理系统;系统在处理数据的过程中,各算子所记录的状态会随着数据的处理而不断变化; 1. 状态 所谓状态State,一般指一个具体的 Task 的状态,即线程处理过程中需要保存的历史数据或历史累计数据…...

6.3.tensorRT高级(1)-yolov5模型导出、编译到推理(无封装)

目录 前言1. YOLOv5导出2. YOLOv5推理3. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-yolov5模…...

如何利用设备数字化平台推动精益制造?

人工智能驱动技术的不断发展,尤其是基于机器学习的预测分析工具的使用,为制造业带来了全新的效率和价值水平。一直以来,精益生产(也叫精益制造)在制造业中扮演着重要角色,而现在通过与工业 4.0的融合&#…...

使用Wps减小PDF文件的大小

第一步、打开左上角的文件 第二步、点击打印选项 第三步、点击打印按钮...

【深度学习】GPT-3

2020年5月,OpenAI在长达72页的论文《https://arxiv.org/pdf/2005.14165Language Models are Few-Shot Learners》中发布了GPT-3,共有1750亿参数量,需要700G的硬盘存储,(GPT-2有15亿个参数),它比GPT-2有了极大的改进。根…...

在登录界面中设置登录框、多选项和按钮(HTML和CSS)

登录框(Input框)的样式: /* 设置输入框的宽度和高度 */ input[type"text"], input[type"password"] {width: 200px;height: 30px; }/* 设置输入框的边框样式、颜色和圆角 */ input[type"text"], input[type&q…...

【语音识别】- 声学,词汇和语言模型

一、说明 语音识别是指计算机通过处理人类语言的音频信号,将其转换为可理解的文本形式的技术。也就是说,它可以将人类的口语语音转换为文本,以便计算机能够进一步处理和理解。它是自然语言处理技术的一部分,被广泛应用于语音识别助…...

【考研英语语法及长难句】小结

【 考场攻略汇总 】 考点汇总 考场攻略 #1 断开长难句只看谓语动词,不考虑非谓语动词先找从句,先看主句 考场攻略 #2 抓住谓语动词,抓住句子最核心的表述动作或内容通过定位谓语动词,找到复杂多变的主语通过谓语动词的数量&…...

C# 反射

反射的概念:C#通过类型(Type)来创建对象,调用对象中的方法,属性等信息;B超就是利用了反射原理将超声波打在人的肚子上,然后通过反射波进行体内器官的成员; 反射提供的类:…...

Pytorch(二)

一、分类任务 构建分类网络模型 必须继承nn.Module且在其构造函数中需调用nn.Module的构造函数无需写反向传播函数,nn.Module能够利用autograd自动实现反向传播Module中的可学习参数可以通过named_parameters()返回迭代器 from torch import nn import torch.nn.f…...

Python 使用http时间同步设置系统时间源码

Python方式实现使用http时间同步设置系统时间源码,系统环境是ubuntu 12.04、Python2.7版本。需要使用到time、os及httplib方法。 Python使用http时间同步设置系统时间,源码如下: #-*-coding:utf8 -*- import httplib as client import time…...

golang sync.singleflight 解决热点缓存穿透问题

在 go 的 sync 包中,有一个 singleflight 包,里面有一个 singleflight.go 文件,代码加注释,一共 200 行出头。内容包括以下几块儿: Group 结构体管理一组相关的函数调用工作,它包含一个互斥锁和一个 map,map 的 key 是…...

4、Linux驱动开发:设备-设备号设备号注册

目录 🍅点击这里查看所有博文 随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记…...

C++(MFC)调用Python

环境: phyton版本:3.10 VS版本:VS2017 包含文件头:Python\Python310\include 包含库文件:Python\Python310\libs 程序运行期间,以下函数只需要调用一次即可,重复调用会导致崩溃 void Initial…...

深度学习实践——循环神经网络实践

系列实验 深度学习实践——卷积神经网络实践:裂缝识别 深度学习实践——循环神经网络实践 深度学习实践——模型部署优化实践 深度学习实践——模型推理优化练习 代码可见于: 深度学习实践——循环神经网络实践 0 概况1 架构实现1.1 RNN架构1.1.1 RNN架…...

docker简单web管理docker.io/uifd/ui-for-docker

要先pull这个镜像docker.io/uifd/ui-for-docker 这个软件默认只能使用9000端口,别的不行,因为作者在镜像制作时已加入这一层 刚下下来镜像可以通过docker history docker.io/uifd/ui-for-docker 查看到这个端口已被 设置 如果在没有设置br0网关时&…...

SpringBoot内嵌的Tomcat:

SpringBoot内嵌Tomcat源码: 1、调用启动类SpringbootdemoApplication中的SpringApplication.run()方法。 SpringBootApplication public class SpringbootdemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootdemoApplicat…...

企业级docker应用注意事项

现在很多企业使用容器化技术部署应用,绕不开的docker技术,在生产环境docker常用操作总结。参考:https://juejin.cn/post/7259275893796651069 1. 尽可能使用官方镜像 在docker hub 官方 使用后面带有 DOCKER OFFICIAL IMAGE 标签的镜像&…...

腾讯云高性能计算集群CPU服务器处理器说明

腾讯云高性能计算集群以裸金属云服务器为节点,通过RDMA互联,提供了高带宽和极低延迟的网络服务,能满足大规模高性能计算、人工智能、大数据推荐等应用的并行计算需求,腾讯云服务器网分享腾讯云服务器高性能计算集群CPU处理器说明&…...

tinkerCAD案例:23.Tinkercad 中的自定义字体

tinkerCAD案例:23.Tinkercad 中的自定义字体 原文 Tinkercad Projects Tinkercad has a fun shape in the Shape Generators section that allows you to upload your own font in SVG format and use it in your designs. I’ve used it for a variety of desi…...

Box-Cox 变换

Box-cox 变化公式如下: y ( λ ) { y λ − 1 λ λ ≠ 0 l n ( y ) λ 0 y^{(\lambda)}\left\{ \begin{aligned} \frac{y^{\lambda} - 1}{\lambda} && \lambda \ne 0 \\ ln(y) && \lambda 0 \end{aligned} \right. y(λ)⎩ ⎨ ⎧​λyλ−1​ln…...

Linux wc命令用于统计文件的行数,字符数,字节数

Linux wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。 语法 wc [-clw][–help][–version][文件…] 参数: -c或–b…...

Python读取多个栅格文件并提取像元的各波段时间序列数据与变化值

本文介绍基于Python语言,读取文件夹下大量栅格遥感影像文件,并基于给定的一个像元,提取该像元对应的全部遥感影像文件中,指定多个波段的数值;修改其中不在给定范围内的异常值,并计算像元数值在每一景遥感影…...

Linux 之 wget curl

wget 命令 wget是非交互式的文件下载器,可以在命令行内下载网络文件 语法: wget [-b] url 选项: -b ,可选,background 后台下载,会将日志写入到 当前工作目录的wget-log文件 参数 url : 下载链…...

AngularJS 和 React区别

目录 1. 背景:2. 版本:3. 应用场景:4. 语法:5. 优缺点:6. 代码示例: AngularJS 和 React 是两个目前最为流行的前端框架之一。它们有一些共同点,例如都是基于 JavaScript 的开源框架&#xff0c…...

【Solr】Solr搜索引擎使用

文章目录 一、什么是Solr?二 、数据库本身就支持搜索啊,干嘛还要搞个什么solr?三、如果我们想要使用solr那么首先我们得安装它 一、什么是Solr? 其实我们大多数人都使用过Solr,也许你不会相信我说的这句话,但是事实却是如此啊 ! 每当你想买自己喜欢的东东时,你可能会打开某…...

一起学算法(选择排序篇)

距离上次更新已经很久了,以前都是非常认真的写笔记进行知识分享,但是带来的情况并不是很好,一度认为发博客是没有意义的,但是这几天想了很多,已经失去了当时写博客的初心了,但是我觉得应该做点有意义的事&a…...

智能体的主观和能动

摘要 智能体的主动性是提升智能机器的能力的关键。围绕智能体的主动性存在很多思想迷雾,本文继续我们以前的工作,试图清理这些概念上的问题。我们的讨论显示:要研究主动性,并不一定需要研究意识,仅需要研究主观和能动就…...

AB 压力测试

服务器配置 阿里云Ubuntu 64位 CPU1 核 内存2 GB 公网带宽1 Mbps ab -c100 -n1000 http://127.0.0.1:9501/ -n:在测试会话中所执行的请求个数。默认时,仅执行一个请求。 -c:一次产生的请求个数。默认是一次一个。 ab -c 100 -n 200 ht…...

深圳有做网站的公司660元/安康seo

快捷键:Ctrld:快速复制 Ctrl/:注释 ShiftEnter:直接跳转下一行注释: """多行注释多行注释多行注释"""# 单行注释# print(hello world)# print(hello world)# 这是一行。。。。代码print(hello…...

专业北京网站建设公司/网址导航怎样推广

机器学习机器分支一览:...

网站备案作用/百度极速版下载

这题目的问题是 最后要加加 ,supplier.SName 虽然sid应该已经能分出行了 应该已经是不同的了 但是以前我写join的时候 都是要把所有的 除了count的列都group 这题是要写 distinct...

做展会怎么引流到自己的网站/自己建个网站要多少钱

一、 Redis的服务安装 系统环境:centos7x64 ip地址:192.168.1.11 1.设置静态IP地址 [rootlocalhost backlion]#vi /etc/sysconfig/network-scripts/ifcfg-* BOOTPROTOstatic #dhcp改为static(修改) ONBOOTyes #开机启用本配置&a…...

万网董事长是谁/如何进行网站性能优化?

1.理解多态性 具体来讲,是对象的多种形态,可以是man,woman等 父类的引用即p2 子类的对象即 Man; 声明的是变量 Person p2 右边是对象(man,或者woman,只要是person其他子类都可以)…...

北京最新疫情情况/seo赚钱方法大揭秘

在我们实际使用 Elasticsearch 时,随着时间的推移,我们会发现有扩容的必要。这个可能由于我们在刚开始创建项目认识不足。我们需要更多的 primary shards,这样可以提高 ingest 的速度。那么我们有什么办法来把之前的一个大的索引变成更多的小…...