【重要】LeetCode 565. 数组嵌套

题目链接

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;
    }
};
posted @ 2022-08-26 17:40  Frodo1124  阅读(18)  评论(0编辑  收藏  举报