多平台统一管理软件接口,如何实现多平台统一管理软件接口
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~