思路:
想象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;
}
};
网友评论