1. 题目

索引从0开始长度为N的数组A,包含0到N - 1的所有整数。
找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], ... }且遵守以下的规则。

假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]... 以此类推,不断添加直到S出现重复的元素。

示例 1:
输入: A = [5,4,0,3,1,6,2]
输出: 4
解释:
A[0] = 5, A[1] = 4, A[2] = 0, A[3] = 3, A[4] = 1, A[5] = 6, A[6] = 2.其中一种最长的 S[K]:
S[0] = {A[0], A[5], A[6], A[2]} = {5, 6, 2, 0}提示:
N是[1, 20,000]之间的整数。
A中不含有重复的元素。
A中的元素大小在[0, N-1]之间。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/array-nesting
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 把走过的标记成 -1
  • 每次从没有走过的地方开始,记录长度
class Solution { // C++
public:int arrayNesting(vector<int>& nums) {int maxlen = 0, len = 0, idx = 0, prev;for(int i = 0; i < nums.size(); ++i){if(nums[i] == -1)continue;idx = i;len = 0;while(idx != -1 && nums[idx] != -1)//没有出现循环{len++;prev = idx;//前一个ididx = nums[idx];//下一个idnums[prev] = -1;//走过的标记成-1}maxlen = max(maxlen, len);}return maxlen;}
};

36 ms 29.3 MB

class Solution:# py3def arrayNesting(self, nums: List[int]) -> int:maxlen = 0for i in range(len(nums)):if nums[i] == -1:continueidx = ilength = 0while idx != -1 and nums[idx] != -1:length += 1prev = idxidx = nums[idx]nums[prev] = -1maxlen = max(maxlen, length)return maxlen

172 ms 15.5 MB

LeetCode 565. 数组嵌套相关推荐

  1. 565 数组嵌套(图论思想-求解所有环的最大长度)

    1. 问题描述: 索引从0开始长度为N的数组A,包含0到N - 1的所有整数.找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], ... }且遵守 ...

  2. 3、leetcode 697 数组的度

    leetcode 697 数组的度 给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最 ...

  3. dart - 如何制作新数组嵌套排序映射

    今天关注的人突然多了起来,为此继续更新今天的第二篇 dart - 如何制作新数组嵌套排序映射? 我有一个看起来像这样的数据块: var list = [{ id: '1', title: 'thing ...

  4. angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据

    [LeetCode] 442. 数组中重复的数据 题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array 难度:中 ...

  5. VBA: 什么是多维数组:从4维数组说起。兼3维数组和数组嵌套的区别

    结论: 本文涉及内容 从4维数组看对多维数组的认识 3维数组和数组嵌套的区别 以及3维数组与redim()的使用注意点 数组的dim arr1() 或 redim arr1() 数组可以dim 或者r ...

  6. 弟中弟的Leetcode总结——数组类(十一)

    弟中弟的Leetcode总结--数组类(十一) 题目描述 Single Number Given a non-empty array of integers, every element appear ...

  7. 弟中弟的Leetcode总结——数组类(十)

    弟中弟的Leetcode总结--数组类(十) 题目描述 Climbing Stairs You are climbing a stair case. It takes n steps to reach ...

  8. 弟中弟的Leetcode总结——数组类(五)

    弟中弟的Leetcode总结--数组类(五) 题目描述 Remove Duplicates from Sorted Array Given a sorted array nums, remove th ...

  9. 弟中弟的Leetcode总结——数组类(二)

    弟中弟的Leetcode总结--数组类(二) 题目描述 Container With Most Water Given n non-negative integers a1, a2, -, an , ...

最新文章

  1. DeepMind 的2017:有 AlphaGo,更有社会责任
  2. VS2005 实用快捷键,迅速提高代码编写效率!
  3. python3在线-Python 3中的新功能
  4. Spring5参考指南:Bean作用域
  5. hbuilderx能开发vue吗_学会就能接项目!Vue + Spring Boot 实现全栈商城项目开发
  6. python中变量怎么定义_python中的变量的使用定义以及使用规则
  7. [IDEA] 快捷键学习
  8. 伽罗华有限域的FEC
  9. 编写jQuery插件的方法
  10. 键盘录入一个长方形的长和宽(长和宽为int类型),计算长方形的面积和周长
  11. BZOJ 1135 [POI2009]Lyz 线段树
  12. 101道算法javaScript描述【一】
  13. cocos2d_lua 2.5D
  14. 罗斯蒙特变送器技能应受器重
  15. 感冒了,很难受,但.....
  16. mysql table crashed_快速解决MySQL:Table xxx is marked as crashed and should be repaired五个办法...
  17. 网络革命:软件定义网络与网络虚拟化
  18. 七、Uniapp+vue+腾讯IM+腾讯音视频开发仿微信的IM聊天APP,支持各类消息收发,音视频通话,附vue实现源码(已开源)-聊天消息项的实现
  19. 上海期货计算机公司排名,双创实践行 ——记2017级计算机与金融工程实验班同学参观上海期货交易所...
  20. 计算机无法使用标准账号,win10标准账户为何打不开其他应用

热门文章

  1. REST framework 用户认证源码
  2. Caffe源码解析2:SycedMem
  3. s5pv210——nandflash和inand的基础理论
  4. FTP 协议和 HTTP 协议的比较
  5. Spring中RedirectAttributes对象重定向传参
  6. HDU 3605Escape(缩点+网络流之最大流)
  7. php调用webservice报错Class 'SoapClient' not found
  8. mysql5.5中的MaxValue关键字
  9. Asp.Net文件和文件夹操作大全
  10. 设有n个正整数,将他们连接成一排,组成一个最大的多位整数