565. 数组嵌套

2019-04-08  本文已影响0人  Pagliacci_Joker

思路:

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

注意:

代码:

class Solution {
public:
    int arrayNesting(vector<int> &nums) {
        set<int> 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;


    }
};

上一篇 下一篇

猜你喜欢

热点阅读