Python | Leetcode Python题解之第457题环形数组是否存在循环

news/2024/10/7 21:28:40 标签: Python, Leetcode, 题解

题目:

题解

class Solution:
    def circularArrayLoop(self, nums: List[int]) -> bool:
        n = len(nums)

        def next(cur: int) -> int:
            return (cur + nums[cur]) % n  # 保证返回值在 [0,n) 中

        for i, num in enumerate(nums):
            if num == 0:
                continue
            slow, fast = i, next(i)
            # 判断非零且方向相同
            while nums[slow] * nums[fast] > 0 and nums[slow] * nums[next(fast)] > 0:
                if slow == fast:
                    if slow == next(slow):
                        break
                    return True
                slow = next(slow)
                fast = next(next(fast))
            add = i
            while nums[add] * nums[next(add)] > 0:
                tmp = add
                add = next(add)
                nums[tmp] = 0
        return False

http://www.niftyadmin.cn/n/5693389.html

相关文章

一个项目javaweb项目如何debug

一个项目javaweb项目如何debug 在一个 Java Web 项目中进行调试通常可以遵循以下步骤: 1. 使用 IDE 的调试功能 大多数现代 IDE(如 IntelliJ IDEA、Eclipse)都提供了强大的调试工具。以下是如何使用调试功能的一般步骤:设置断点:在代码中你希望检查的行上设置断点。通常…

C语言文件操作(下)(28)

文章目录 前言一、文件的打开和关闭打开打开模式相对路径和绝对路径 关闭 二、文件操作正确流程三、文件顺序读写函数fopenfclosefputcfgetcfputsfgetsfprintffscanfsprintfsscanffwritefread 四、文件随机读写函数fseekftellrewind 五、文件读取结束时候的判断feofferror具体例…

【科普】什么是npm和pip?它们之间有什么异同?

npm 和 pip 是两种不同的包管理工具,分别用于不同的编程语言和生态系统。 npm 全称:Node Package Manager主要用途:用于 JavaScript 和 Node.js 环境的包管理。功能: 安装、更新和管理 JavaScript 库和框架。提供一个命令行工具…

文心一言 VS 讯飞星火 VS chatgpt (364)-- 算法导论24.3 6题

六、给定有向图 G ( V , E ) G(V,E) G(V,E),每条边 ( u , v ) ∈ E (u,v)∈E (u,v)∈E 有一个关联值 r ( u , v ) r(u,v) r(u,v) ,该关联值是一个实数,其范围为 0 ⩽ r ( u , v ) ⩽ 1 0⩽r(u,v)⩽1 0⩽r(u,v)⩽1 ,其代表的意…

Oracle 数据库安装及配置

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

【树结构与栈】中等力扣练习题

二叉树中和为目标值的路径 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,4,7,2,null,null,5…

Python3 爬虫 中间人爬虫

中间人(Man-in-the-Middle,MITM)攻击是指攻击者与通信的两端分别创建独立的联系,并交换其所收到的数据,使通信的两端认为其正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中…

AJAX 3——原理:XMLHttpRequest+Promise

AJAX 3——原理 1.XMLHttpRequest 定义:XHR用于与服务器交互,通过XMLHttpRequest可以在不刷新页面的情况下请求特定URL,获取数据。 axios与XHR关系:axios使用XMLHttpRequest与服务器沟通 使用XMLHttpRequest 创建XMLHttpReques…