LeetCode 457 Circular Array Loop

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-17 03:31   11   0
def circularArrayLoop(self, nums: List[int]) -> bool:
        visited = [0] * len(nums)
        c = 0
        for i in range(len(nums)):
            if visited[i]:
                continue
            d = 1 if nums[i]>0 else -1
            # d 表示方向
            p,nowc = i,c
            while nums[p]*d > 0 and visited[p]==0: 
            # 为零表示从未访问过
                c += 1
                visited[p] = c
                p = (nums[p]+p+len(nums))%(len(nums))
            if nums[p]*d > 0 and  c>visited[p] and visited[p]>nowc:
            # 小于nowc表示是之前的遍历
                return True
        return False

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP