565. Array Nesting
来源:互联网 发布:找出数组中重复的元素 编辑:程序博客网 时间:2024/06/10 15:14
1、题目描述
一个数组A,长度为N,内容为0~N-1的数字。返回最长集合S的长度,S[i] = {A[i], A[A[i]], A[A[A[i]]], ... } 。
2、思路
根据上述数组的特点可知,每一个数字跳转到的下一个数字都是不同的,因为数组中每个数字都不一样,
也就是说,把这些跳转关系画成图的话,每一个数字的入度和出度都应该是1.
然后求这个图上的最长的环。
以数组中的每个元素当做S的起点开始统计,当数组中的元素被访问过了之后,将其标为-1,即已经被访问过。
找出最长环即可。
3、代码
int arrayNesting(vector<int>& nums) { int ans = 0; for(int i=0;i<nums.size();i++){ int cnt = 0,k=i; while(nums[k]!=-1){ int a = k; k = nums[k]; nums[a]=-1; cnt++; } ans=max(ans,cnt); } return ans; }
阅读全文
0 0
- [leetcode]565. Array Nesting
- [LeetCode]565. Array Nesting
- 565. Array Nesting
- LeetCode * 565. Array Nesting
- [LeetCode]565. Array Nesting
- 565. Array Nesting
- 565. Array Nesting
- leetcode 565. Array Nesting
- leetcode 565. Array Nesting
- 565. Array Nesting
- [LeetCode] 565. Array Nesting
- [leetcode]565. Array Nesting
- [leetCode]565. Array Nesting
- LeetCode 565. Array Nesting
- 565. Array Nesting
- LeetCode 565. Array Nesting
- 565. Array Nesting
- 565. Array Nesting
- 【初识Python笔记】window 下搭建python环境
- SqlServer高性能学习笔记(一)
- #define用法
- 初见Java之HelloWorld
- 关闭windows10动画效果提升计算机性能
- 565. Array Nesting
- ES6学习2章:let和const命令
- Python is同一性运算符和==相等运算符区别
- kafka运维
- 再谈同步、异步、阻塞、非阻塞
- libc-bin (2.23-0ubuntu9) 的触发器 ... 在处理时有错误发生: rsync E: Sub-process /usr/bin/dpkg returned an error c
- 采用JavaScript、AngularJS实现过滤器搜索、删除、添加、排序、常用过滤器
- 【迷你兔分享】数据恢复中的可逆与不可逆操作
- Java设计模式--工厂模式