LeetCode 565. 数组嵌套
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. 数组嵌套相关推荐
- 565 数组嵌套(图论思想-求解所有环的最大长度)
1. 问题描述: 索引从0开始长度为N的数组A,包含0到N - 1的所有整数.找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], ... }且遵守 ...
- 3、leetcode 697 数组的度
leetcode 697 数组的度 给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最 ...
- dart - 如何制作新数组嵌套排序映射
今天关注的人突然多了起来,为此继续更新今天的第二篇 dart - 如何制作新数组嵌套排序映射? 我有一个看起来像这样的数据块: var list = [{ id: '1', title: 'thing ...
- angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据
[LeetCode] 442. 数组中重复的数据 题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array 难度:中 ...
- VBA: 什么是多维数组:从4维数组说起。兼3维数组和数组嵌套的区别
结论: 本文涉及内容 从4维数组看对多维数组的认识 3维数组和数组嵌套的区别 以及3维数组与redim()的使用注意点 数组的dim arr1() 或 redim arr1() 数组可以dim 或者r ...
- 弟中弟的Leetcode总结——数组类(十一)
弟中弟的Leetcode总结--数组类(十一) 题目描述 Single Number Given a non-empty array of integers, every element appear ...
- 弟中弟的Leetcode总结——数组类(十)
弟中弟的Leetcode总结--数组类(十) 题目描述 Climbing Stairs You are climbing a stair case. It takes n steps to reach ...
- 弟中弟的Leetcode总结——数组类(五)
弟中弟的Leetcode总结--数组类(五) 题目描述 Remove Duplicates from Sorted Array Given a sorted array nums, remove th ...
- 弟中弟的Leetcode总结——数组类(二)
弟中弟的Leetcode总结--数组类(二) 题目描述 Container With Most Water Given n non-negative integers a1, a2, -, an , ...
最新文章
- DeepMind 的2017:有 AlphaGo,更有社会责任
- VS2005 实用快捷键,迅速提高代码编写效率!
- python3在线-Python 3中的新功能
- Spring5参考指南:Bean作用域
- hbuilderx能开发vue吗_学会就能接项目!Vue + Spring Boot 实现全栈商城项目开发
- python中变量怎么定义_python中的变量的使用定义以及使用规则
- [IDEA] 快捷键学习
- 伽罗华有限域的FEC
- 编写jQuery插件的方法
- 键盘录入一个长方形的长和宽(长和宽为int类型),计算长方形的面积和周长
- BZOJ 1135 [POI2009]Lyz 线段树
- 101道算法javaScript描述【一】
- cocos2d_lua 2.5D
- 罗斯蒙特变送器技能应受器重
- 感冒了,很难受,但.....
- mysql table crashed_快速解决MySQL:Table xxx is marked as crashed and should be repaired五个办法...
- 网络革命:软件定义网络与网络虚拟化
- 七、Uniapp+vue+腾讯IM+腾讯音视频开发仿微信的IM聊天APP,支持各类消息收发,音视频通话,附vue实现源码(已开源)-聊天消息项的实现
- 上海期货计算机公司排名,双创实践行 ——记2017级计算机与金融工程实验班同学参观上海期货交易所...
- 计算机无法使用标准账号,win10标准账户为何打不开其他应用