457. Circular Array Loop
来源:互联网 发布:乌克兰胖爸 知乎 编辑:程序博客网 时间:2024/05/24 01:15
解题思路
对nums进行遍历
如果nums[i] == 0 or len(nums):
证明当前已经访问过or节点本身成为回路
跳过
否则:
从当前点开始进行回路
并记录为str类型的‘0’
如果在访问过程中
出现int 0==表示进入了之前步骤统计的无法组成环路的点,可以得出,当前也无法形成环路
or str‘0’表示进入了当前环路中的一个点,很明显,可以形成环路
如果无法形成环路的话,则把节点中的所有位置转int
其实主要思想就是利用0 和‘0’来区分之前已经统计过的位置以及当前的位置,来进行回路的判断
解法二中同样的思路,只不过加了一个set数组,理论上讲,时间复杂度降低,空间复杂度略微升高
解法1
class Solution(object): def circularArrayLoop(self, nums): """ :type nums: List[int] :rtype: bool """ for i in range(len(nums)): if nums[i] == 0 or nums[i] == len(nums): nums[i] = 0 continue start = i while 0 <= start: k = start%len(nums) if nums[k] == 0 or nums[k] == '0': break b = start start += nums[k] nums[k] = '0' if start >= len(nums) and nums[start % len(nums)] == '0': return True else: nums = [int(j) for j in nums] return False
解法2
class Solution(object): def circularArrayLoop(self, nums): """ :type nums: List[int] :rtype: bool """ for i in range(len(nums)): if nums[i] == 0 or nums[i] == len(nums): nums[i] = 0 continue start = i now = set([]) while 0 <= start: k = start%len(nums) now.add(k) if nums[k] == 0 or nums[k] == '0': break b = start start += nums[k] nums[k] = '0' if start >= len(nums) and nums[start % len(nums)] == '0': return True else: for j in now: nums[j] = int(nums[j]) return False
0 0
- 457. Circular Array Loop
- LeetCode 457. Circular Array Loop
- Leetcode 457. Circular Array Loop
- {LeetCode} 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
- Ch2-5: find the beginning of loop in a circular linked list---two solutions
- Best Way to Loop Through an Array in JavaScript
- JSP for loop output all elements of an array
- javascript: Jquery each loop with json array or object
- javascript: Jquery each loop with json array or object
- loop
- centos6.5上安装wdcpV3全程
- 一个使用FileReader的案例
- 区间覆盖问题
- 问题分析报告--简单SQL启动MR
- HDU-2066-一个人的旅行
- 457. Circular Array Loop
- php组合模式
- activemq 性能 1
- (一)Cocos2d-x学习之文件操作
- text-overflow:ellipsis的巧妙运用
- IO监控 poll
- boost bind的使用方法
- Java 黑白棋盘
- 问题分析报告--DBService备份问题