【重要】LeetCode 565. 数组嵌套
题目链接
注意事项
题面形式类似于并查集,每个元素都是从i到nums[i]的有向边,相连的元素形成一条链。
从一个元素切入,然后一直走到对应链的末尾,统计这条链上的数目。统计完再换下一条链统计。一直到所有元素都被访问过。
代码
class Solution {
public:
int arrayNesting(vector<int>& nums) {
int ans = 0;
int n = nums.size();
vector<bool> visit(n, false);
for (int i = 0; i < n; ++i) {
int cnt = 0;
while (!visit[i]){
visit[i] = true;
i = nums[i];
++cnt;
}
ans = max(ans, cnt);
}
return ans;
}
};