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

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

题目:

题解:

func circularArrayLoop(nums []int) bool {n := len(nums)next := func(cur int) int {return ((cur+nums[cur])%n + n) % n // 保证返回值在 [0,n) 中}for i, num := range nums {if num == 0 {continue}slow, fast := i, next(i)// 判断非零且方向相同for nums[slow]*nums[fast] > 0 && nums[slow]*nums[next(fast)] > 0 {if slow == fast {if slow == next(slow) {break}return true}slow = next(slow)fast = next(next(fast))}add := ifor nums[add]*nums[next(add)] > 0 {tmp := addadd = next(add)nums[tmp] = 0}}return false
}

http://www.mrgr.cn/news/42949.html

相关文章:

  • 应用恢复开发指导
  • 【树莓派系列】交叉编译工具、交叉编译链的安装使用
  • 读数据湖仓07描述性数据
  • Pandas -----------------------基础知识(六)
  • Docker安装人大金仓(kingbase)关系型数据库教程
  • React 表单与事件
  • CSRF | CSRF 漏洞介绍
  • PyQt入门指南五 布局管理基础
  • Agent 概念学习
  • Java重修笔记 第六十天 坦克大战(十)IO 流 - FileReader 和 FileWriter
  • Pikachu-Over Permission-水平越权
  • ChatGPT的150个角色提示场景实测(14)化妆师
  • Pikachu-unsafe upfileupload-getimagesize
  • C(十三)while、for、do-while循环综合(一)
  • 德国法院允许非营利组织LAION抓取受版权保护的图像用于AI训练
  • 【hot100-java】【分割回文串】
  • AVL树的实现
  • 英语不好可以学编程吗?
  • SVG 简介
  • C语言 | Leetcode C语言题解之第457题环形数组是否存在循环