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

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

题目:

题解:

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.kler.cn/news/340420.html

相关文章:

  • C++竞赛初阶—— 石头剪子布
  • Ubuntu 上安装 MySQL 并且实现远程登录
  • 李沐 X动手学深度学习 数据操作+数据预处理 学习笔记(无代码,纯理论部分)
  • 测试-BUG篇
  • 宏队列和微队列
  • YOLO11模型推理 | 目标检测与跟踪 | 实例分割 | 关键点估计 | OBB旋转目标检测
  • 计算机网络:数据链路层 —— 数据链路层概述
  • java脚手架系列1--模块化、多环境
  • 百度文心智能体平台开发萌猫科研加油喵
  • FFMpeg源码分析,关键结构体分析(一)
  • 20241008深度学习动手篇
  • 如何避免 JavaScript 模块化中的函数未定义陷阱
  • 使用正则表达式删除文本的奇数行或者偶数行
  • k8s之ingress-nginx-controller安装
  • 04. prometheus 监控 Windows 服务器
  • JavaScript 中的异步
  • Qt开发环境的搭建
  • 【Matlab】Matlab 导入数据.csv或者.xlsx文件,然后使用这些数据来绘制图表
  • 从opencv-python入门opencv--GUI功能之图像和视频操作
  • 前端反接保护:实用方案解析与探讨