565. 数组嵌套

思路:

想象a[i]与a[a[i]]有一条a[i]指向a[a[i]]的指针,即求多个环内的最大环大小

注意:

代码:

class Solution {
public:
    int arrayNesting(vector &nums) {
        set sercleset;
        int flag[nums.size() + 5];//表示第i个数已经被访问
        memset(flag, 0, sizeof(flag));
        int max = -1;
        int cnt = 0;
        for (int i = 0; i < nums.size(); i++) {
            if (flag[i] == 0) {
                cnt = 1;
                flag[i] = 1;
                int temp = nums[i];
                while (flag[temp] == 0) {
                    cnt++;
                    flag[temp] = 1;
                    temp = nums[temp];
                }
                if (cnt > max) {
                    max = cnt;
                }
            }
        }
        return max;


    }
};

你可能感兴趣的:(565. 数组嵌套)