Leetcode 457. Circular Array Loop
来源:互联网 发布:朝鲜战争 知乎 编辑:程序博客网 时间:2024/05/17 00:10
题目链接: Leetcode 457. Circular Array Loop
第一次遇到用 slow/fast 指针来解决存在循环网络的问题,新奇。
心得:既然是写代码,机器处理数据,应该尽量从机器的角度去思考,而非以人的角度去思考:如果人自己解决它,那要机器干什么呢:)
public class Solution { public boolean circularArrayLoop(int[] nums) { int n = nums.length; for(int i=0;i<n;i++){ if(nums[i]==0){ continue; } // slow fast pointers int j=i, k=getNext(j,nums); while(nums[i]*nums[j]>0&&nums[i]*nums[k]>0&&nums[i]*nums[getNext(k,nums)]>0){ if(j==k){ //check for one element between loop if(j==getNext(j,nums)){ break; } return true; } j = getNext(j,nums); k = getNext(getNext(k,nums),nums); } // clean all the loop along the way j = i; int val = nums[i]; while(nums[j]*nums[i]>0){ nums[j] = 0; j = getNext(j,nums); } } return false; }private int getNext(int j, int[] nums) {// TODO Auto-generated method stubint n = nums.length;return j+nums[j]>0?(j+nums[j])%n:n+((j+nums[j])%n);}}
0 0
- LeetCode 457. Circular Array Loop
- Leetcode 457. Circular Array Loop
- {LeetCode} 457. Circular Array Loop
- 457. Circular Array Loop
- leetcode 457. Circular Array Loop 双指针 + 循环判断
- Circular Array
- Circular microphone array 1
- Circular Array implement Queue
- Queue implementation: A circular array with one unused location
- soj 2302. Queue Implementation Using a Circular Array
- Yet another implementation of a lock-free circular array queue
- Yet another implementation of a lock-free circular array queue
- [leetcode][array] Rotate Array
- LeetCode:Array
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- POJ - 3276 Face The Right Way (尺取)
- DNS服务(零):大概
- [菜鸟笔记--JavaWeb的进阶之路一]
- Java--文本文档编写Java代码
- python基本类型
- Leetcode 457. Circular Array Loop
- 1.5、const和volatile深度理解
- html是什么,html5是什么?web开发必备知识之html
- fasta转成txt
- SQL JOINS 学习笔记
- java 类加载器
- DNS服务(一):由域名解析出IP
- 复杂系统理论
- Android ANR异常及解决方法