565 중첩 배열
모든 정수 1 - N 지수는 0을 포함하는 어레이 (A)의 제로 길이 N을한다. 찾아 반환 [I] S, S의 최대 회수 = {A [I], A [A [I]하는 [A [A가 [I]], ...}과 같은 규칙을 준수.
[I]는 인덱스 i의 선택 소자는, S의 첫 번째 요소이다되어야 다음 요소 A의 S 것으로 [A [I], (A)로 하였다 [A [A [I]] ... 등등 , 표시 S의 요소를 반복 할 때까지 계속 추가.
예 1 :
입력 A는 = [5,4,0,3,1,6,2]가
출력 : 4
설명했다
. A [0] = 5, A [. 1] = 4, A [2] = 0, A [. 3 = 3, A [4] = 1 , A [5] = 6, A [6] = 2.
긴 S 중 하나 [K] :
S [0] = {A [0], A [5., A, A [2] = {} 5 ,. 6, 2, 0 [6.].}
참고
N [1, 20,000]의 정수이다.
A는 중복 요소를 포함하지 않습니다.
간에서 소자의 크기 [0, N-1].
class Solution {
public int arrayNesting(int[] nums) {
int max = 0;
for (int i = 0; i < nums.length; i++) {
int cnt = 0;
for (int j = i; nums[j] != -1; ) {
cnt++;
int t = nums[j];
nums[j] = -1;
j = t;
}
max = Math.max(max, cnt);
}
return max;
}
}