力扣日刷251120

作者:倦王日期:2025/11/22

今天跟女朋友打了一会三角洲,现在才开始做题,争取也完成3道以上吧哈哈哈哈

第一题:

这一题,我先看了题解,题解中暴力求解的办法就是把每次遇到的指针(head)都加入到一个set()当中,然后循环体head,当head非空时,进行一个判断,如果head在set中出现过就回Ture,反之就False。下面是官方题解:

1class Solution:
2    def hasCycle(self, head: ListNode) -> bool:
3        seen = set()
4        while head:
5            if head in seen:
6                return True
7            seen.add(head)
8            head = head.next
9        return False
10

我基于官方题解进行了复现,但是也还是有点不一样:我加多了一个逻辑更复杂了一点。还是官方比较清楚。

1class Solution:
2    def hasCycle(self, head: Optional[ListNode]) -> bool:
3        seen = set()
4        while head not in seen and head !=None:
5            seen.add(head)
6            head = head.next
7        if head in seen:
8            return True
9        return False
10

这一题还有一种解法,因为下面第二题要用到,这里就提前说了:用快慢指针的方法去解决:如果有环,慢指针总会有被快指针套圈的时候,这时候就可以判断了!

1class Solution:
2    def hasCycle(self, head: Optional[ListNode]) -> bool:
3        show = fast = head
4        while fast and fast.next:
5            show = show.next
6            fast = fast.next.next
7            if show ==fast:
8                return True
9        return False
10

第二题:

这一题是一个数学题:其主要核心的思想就是当慢指针与快指针相遇时,head指针开始走第一次会在环的开始节点相遇。具体的东西建议看灵神的视频:https://www.bilibili.com/video/BV1KG4y1G7cu/?vd%5Fsource=5be82feb0bc67fab83245df3d321eb87

下面是灵神的题解,我的题解仿照灵神,所以就不再拿出来看了!

1class Solution:
2    def detectCycle(self, head: Optional[ListNode]) -> Optional[ListNode]:
3        slow = fast = head
4        while fast and fast.next:
5            slow = slow.next
6            fast = fast.next.next
7            if fast is slow:  # 相遇
8                while slow is not head:  # 再走 a 
9                    slow = slow.next
10                    head = head.next
11                return slow
12        return None
13

但是这里有一点需要注意的就是:两个return的位置,外面的return是在循环之外的,内部是在循环里面的但在show与head循环判断之外!

今天困了写了一个小时,明天补回来吧!


力扣日刷251120》 是转载文章,点击查看原文


相关推荐


Swift6 @retroactive:Swift 的重复协议遵循陷阱
RickeyBoy2025/11/20

欢迎大家给我点个 star!Github: RickeyBoy 背景:一个看似简单的 bug App 内有一个电话号码输入界面,在使用时用户需要从中选择注册电话对应的国家,以获取正确的电话区号前缀(比如中国是 +86,英国是 +44 等)。 Step 1:入口Step 2:缺少区号期望结果 这是一个看似很简单的 bug,无非就是写 UI 的时候漏掉了区号,那么把对应字段拼上去就行了嘛。不过一番调查之后发现事情没有那么简单。 列表是一个公用组件,我们需要在列表中显示


如视发布空间大模型Argus1.0,支持全景图等多元输入,行业首创!
机器之心2025/11/19

近来,世界模型(World Model)很火。多个 AI 实验室纷纷展示出令人惊艳的 Demo:仅凭一张图片甚至一段文字,就能生成一个可交互、可探索的 3D 世界。这些演示当然很是炫酷,它们展现了 AI 强大的生成能力。 但一个关键问题随之而来:这些由 AI 生成的世界中,绝大部分事物都是模型想象和虚构的。 如果我们不满足于「创造」一个虚拟世界,而是想把我们当下生活的这个真实世界(比如我们的家、办公室、工厂和城市)完整地变成一个可交互、可计算的 3D 世界呢? 这正是如视(Realsee)想要解


pytest1-接口自动化测试场景
文人sec2025/11/17

课程:B站大学 记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试,后续进阶UI自动化测试 接口自动化测试 接口自动化测试的场景测试金字塔模型自动化测试前需要思考什么?Pytest是什么?Pytest 有哪些格式要求?在pycharm下安装pytestpytest知识点测试用例示例类级别的用例示例断言测试装置介绍参数化参数化测试函数使用Mark:标记测试用例Skip:使用场景pytest命令运行测试用例文件pytest中执行顺序如何调整pytest中py文件执


Next.js第五章(动态路由)
小满zs2025/11/16

动态路由 动态路由是指在路由中使用方括号[]来定义路由参数,例如/blog/[id],其中[id]就是动态路由参数,因为在某些需求下,我们需要根据不同的id来显示不同的页面内容,例如商品详情页,文章详情页等。 基本用法[slug] 使用动态路由只需要在文件夹名加上方括号[]即可,例如[id],[params]等,名字可以自定义。 来看demo: 我们在app/shop目录下创建一个[id]目录 //app/shop/[id]/page.tsx export default function Pa


基于脚手架微服务的视频点播系统-脚手架开发部分(完结)elasticsearch与libcurl的简单使用与二次封装及bug修复
加班敲代码的Plana2025/11/15

基于脚手架微服务的视频点播系统-脚手架开发部分elasticsearch与libcurl的简单使用与二次封装及bug修复-完结 1.ElasticClient的使用1.1ES检索原理正排索引倒排索引 1.2ES核心概念1.2.1索引(index)1.2.2类型(Field)1.2.3字段(Field)1.2.4映射(mapping)1.2.5文档(document) 1.3 Kibana访问es进行测试1.3.1创建索引1.3.2新增数据1.3.3查看并搜索数据1.3.4删除索引


qinkun的缓存机制也有弊端,建议官方个参数控制
石小石Orz2025/11/14

公司前端基于qiankun架构,主应用通过qiankun加载子应用,子应用也可能通过qiankun继续加载子应用,反复套娃。经过测试,不断打开子应用后,会导致内存不断上上。通过快照分析,发现内存升高的元凶是qiankun内置的# import-html-entry。 import-html-entry 的作用是什么 import-html-entry 是 qiankun / single-spa 微前端生态的核心模块之一,用来: 加载远程 HTML 入口文件(entry HTML),并提取出其中


Python 的内置函数 int
IMPYLH2025/11/13

Python 内建函数列表 > Python 的内置函数 int Python 的内置函数 int() 是一个用于将其他数据类型转换为整数类型的重要函数。它具有以下详细特性: 基本功能: 将数字或字符串转换为整数语法:int(x, base=10)示例:int('123') # 返回 123 int(12.34) # 返回 12 参数说明: 第一个参数可以是: 数字(整数或浮点数)字符串(仅包含数字字符)布尔值(True 转为 1,False 转为 0) 可


✍️记录自己的git分支管理实践
你的人类朋友2025/11/11

前言 👋 你好啊,我是你的人类朋友! 因为本人的开发经常涉及各个分支间的同步,这一套同步的流程从刚开始的小心翼翼,到现在相对熟悉了 所以我想记录下自己工作中常用的分支同步的步骤 😆 顺便研究康康有没有可以优化的地方 🍃 正文 先介绍下背景情况吧 首先主分支为 master 其次,因为开发分为多个阶段,比如 phase_1、phase_2、phase_3 等 那就在 master 之后再创建 feature/phase_1、feature/phase_2 这样的分支,作为每一个 phase


草梅 Auth 1.11.0 发布与 GitHub 依赖安全更新 | 2025 年第 45 周草梅周报
草梅友仁2025/11/9

本文在 草梅友仁的博客 发布和更新,并在多个平台同步发布。如有更新,以博客上的版本为准。您也可以通过文末的 原文链接 查看最新版本。 前言 欢迎来到草梅周报!这是一个由草梅友仁基于 AI 整理的周报,旨在为您提供最新的博客更新、GitHub 动态、个人动态和其他周刊文章推荐等内容。 本周依旧在开发 草梅 Auth 中。 你也可以直接访问官网地址:auth.cmyr.dev/ Demo 站:auth-demo.cmyr.dev/ 文档地址:auth-docs.cmyr.dev/ 本周 草梅


理解 LangChain 智能体:create_react_agent 与 create_tool_calling_agent
奇舞精选2025/11/7

本文译者为 360 奇舞团前端开发工程师 原文标题:理解 LangChain 智能体:create_react_agent 与 create_tool_calling_agent 原文作者:Anil Goyal 原文地址:medium.com/@anil.goyal… 当我们使用 LangChain 构建 AI 智能体时,首先要做的是选择正确的智能体架构。 目前常用的2种架构是create_react_agent和create_tool_calling_agent。两者都可以让AI使用外部工具

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读