565.数组嵌套

网友投稿 273 2022-08-24


565.数组嵌套

首先想到的是直接暴力遍历,以数组中每一个元素为起点,看最远能走多远:

from typing import List class Solution: # 暴力 def arrayNesting(self, nums: List[int]) -> int: result = 0 for x in nums: next_n = x s = set() while next_n not in s: s.add(next_n) next_n = nums[next_n] if len(s) > result: result = len(s) return result

思考一下,直接遍历会有很多重复的操作。如果某个元素已经出现过了,那么就不用再看它了。

from typing import List class Solution: # 暴力 def arrayNesting(self, nums: List[int]) -> int: has_appeared = set() result = 0 for x in nums: if x in has_appeared: continue next_n = x s = set() while next_n not in s: has_appeared.add(next_n) s.add(next_n) next_n = nums[next_n] if len(s) > result: result = len(s) return result


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现企业员工管理系统
下一篇:Python进程(python进程锁)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~