Circular Array Loop LeetCode solution in Python

1
class Solution:
2
def circularArrayLoop(self, nums: List[int]) -> bool:
3
n = len(nums)
4
for i in range(n):
5
seen = set()
6
minval = float("inf")
7
maxval = float("-inf")
8
j = i
9
while j not in seen:
10
seen.add(j)
11
minval = min(minval, nums[j])
12
maxval = max(maxval, nums[j])
13
k = 1 + abs(nums[j]) // n
14
j = (k * n + j + nums[j]) % n
15
if j == i and len(seen) > 1 and (minval > 0 or maxval < 0):
16
return True
17
return False

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0