【LeetCode热题100】141. 环形链表(链表)
一.题目要求
给你一个链表的头节点 head ,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。
如果链表中存在环 ,则返回 true 。 否则,返回 false 。
二.题目难度
简单
三.输入样例
示例 1:

输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。
示例 2:

输入:head = [1,2], pos = 0
输出:true
解释:链表中有一个环,其尾部连接到第一个节点。
示例 3:

输入:head = [1], pos = -1
输出:false
解释:链表中没有环。
提示:
链表中节点的数目范围是 [ 0 , 1 0 4 ] [0, 10^4] [0,104]
− 1 0 5 -10^5 −105 <= Node.val <= 1 0 5 10^5 105
pos 为 -1 或者链表中的一个 有效索引 。
进阶:你能用 O ( 1 ) O(1) O(1)(即,常量)内存解决此问题吗?
四.解题思路
解1:哈希+遍历
解2:快慢指针
五.代码实现
解1
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:bool hasCycle(ListNode *head) {unordered_set<ListNode*> nodeset;ListNode *p = head;if(p == NULL ||p->next == NULL)return false;while(p){ if(nodeset.count(p)) return true;nodeset.insert(p);p = p->next;}return false;}
};
解2
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:bool hasCycle(ListNode *head) {if(!head || !head->next)return false;ListNode *front = head->next;ListNode *back = head;while(front && back){if(front == back) return true;if(front->next == NULL){front = NULL;}else front = front->next->next; back = back->next;}return false;}
};
六.题目总结
vector没有find()方法,在algorithm.h里。
相关文章:
【LeetCode热题100】141. 环形链表(链表)
一.题目要求 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置…...
express+mysql+vue,从零搭建一个商城管理系统11--使用Sequelize
提示:学习express,搭建管理系统 文章目录 前言一、安装sequelize和mysql2二、修改config/db.js三、修改models/user.js,models/shop.js,models/goods.js四、新建dao/user.js,dao/shop.js,dao/goods.js五、修…...
霹雳学习笔记——6.1 ResNet网络结构、BN以及迁移学习
一、ResNet结构 ResNet是一个突破一千层的网络架构。主要是卷积层Conv和池化层的堆叠。但是普通的堆叠会使得错误率更高,如下图所述,这是因为会产生梯度消失/梯度爆炸等。(梯度就是增量,有大小有方向) 解决方法&#…...
Gitee的注册和代码提交(附有下载链接)
目录 一、Git的下载和安装二、安装图形化界面工具三、在Gitee上创建仓库四、如何把仓库开源五、Clone远程仓库到本地六、拷贝代码到本地的仓库七、Add-Commit-Push到远程仓库八、可能出现的问题8.1 建议在本地仓库直接创建项目8.2 第一次Push可能出现的问题8.3 怎么删除Gitee上…...
机器学习是什么?
机器学习是一种人工智能(AI)的分支,其主要目标是使计算机系统能够通过数据和经验来改进和学习,而无需明确地编程。在机器学习中,计算机系统会通过对大量数据进行学习和分析,从中发现模式和规律,…...
复盘-PPT
调整PPT编号起始页码在设计→幻灯片大小 设置所有以及文本项目符号 ## 打开母版,找到对应级别设置重置 当自动生成的smartart图形不符合预期时 1 2...
springcloud gateway网关动态配置限流
上一篇记录了gateway网关的基础功能和配置,并且使用了默认的限流功能。 springcloud gateway网关-CSDN博客 这里简单记录一下gateway网关集成mybatisPlus实现动态限流。gateway网关默认的限流方式各项限流参数都是在配置文件中配置,不够灵活࿰…...
在Linux/Ubuntu/Debian中使用windows应用程序/软件
Wine 是一个兼容层,允许你在类 Unix 操作系统(包括 Ubuntu)上运行 Windows 应用程序。 以下是在 Ubuntu 上安装和使用 Wine 的基本步骤: 在 Ubuntu 上安装 Wine: 更新软件包列表: 打开终端并运行以下命令以…...
idea Springboot 组卷管理系统LayUI框架开发mysql数据库web结构java编程计算机网页
一、源码特点 springboot 组卷管理系统是一套完善的完整信息系统,结合mvc框架和LayUI框架完成本系统springboot spring mybatis ,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整…...
wordpress主题批量修改历史文章标题,文章内容
:wordpress模板,在我映像中还是比较受欢迎的,至少它该有的插件都是应有尽有,不像帝国cms虽然功能多,但是基本用不上,而且很多会出错。也不像织梦cms漏洞太多,搞的建站期间出现很多其他事情&am…...
Unity2019.2.x 导出apk 安装到安卓Android12+及以上的系统版本 安装出现-108 安装包似乎无效的解决办法
Unity2019.2.x 导出apk 安装到安卓Android12及以上的系统版本 安装出现-108 安装包似乎无效的解决办法 导出AndroidStudio工程后 需要设置 build.gradle文件 // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAINbuildscript {repositor…...
创建SpringCloudGateWay
创建SpringCloudGateWay 本案例基于尚硅谷《谷粒商城》项目,视频27 创建测试API网关 1、创建module 2、引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:x…...
鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:StepperItem)
用作Stepper组件的页面子组件。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 接口 StepperItem() 属性 参数名参数类型参数描述prevLabelstring设置左侧文本按钮内…...
游戏盾SDK是如何实现智能加速的?
游戏盾SDK是一款能够提供内含windows、安卓、IOS版本的SDK下载,通过接入SDK,由SDK接管所有的通信流量,进行调度和加密传输,满足抗D、防C、流量加密等业务需求,为用户提供优质的网络环境,游戏极速畅通无阻。…...
西井科技参与IATA全球货运大会 以AI绿动能引领智慧空港新未来
3月12日至14日,由国际航空运输协会IATA主办的全球货运大会(World Cargo Symposium)在中国香港成功举办,这是全球航空货运领域最大规模与影响力的年度盛会。作为大物流领域全球领先的“智能化与新能源化”综合解决方案提供商&#…...
RPC通信原理(二)
RPC序列化 任何一种序列化框架,核心思想就是设计一种序列化协议,将对象的类型、属性类型、属性值一一按照固定的格式写到二进制字节流中来完成序列化,再按照固定的格式把数据一一读取出来,通过这些数据信息创建出一个新的对象&…...
Redis 淘汰策略
Redis 是一个使用键值对存储数据的内存中数据结构存储系统,它支持多种类型的数据结构,如字符串(strings),列表(lists),集合(sets),有序集合&#…...
游戏数据处理
游戏行业关键数据指标 ~ 总激活码发放量、总激活量、总登录账号数 激活率、激活登录率 激活率 激活量 / 安装量 激活率 激活量 / 激活码发放量 激活且登录率 激活且登录量 / 激活码激活量 激活且登录率应用场景 激活且登录率是非常常用的转化率指标之一,广泛…...
Qt+FFmpeg+opengl从零制作视频播放器-14.程序Ubuntu移植
首先查看的是Linux系统的版本,我使用的是Ubuntu20.04.6LTS版本。 去Qt官网下载Qt 的版本。 这里下载的是5.12.12版本,双击运行,然后安装好Qt。 回想一下,在之前的程序,我们都是在Windows上开发,仅仅使用Qt和ffmpeg,Qt前面的步骤运行完成就可以安装好了,所以在linux上…...
Go 语言中的 Cond 机制详解
概述 在并发编程中,条件同步是一个常见的需求。Go 语言提供了 sync.Cond 类型来满足这一需求。sync.Cond 基于互斥锁(sync.Mutex)提供了条件变量的同步机制,允许一组 goroutine 在满足某个条件时进行阻塞等待,或者在条…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
