import java.util.*;
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
if(arr == null || arr.length == 0) {
return 0 ;
}
if(arr.length == 1) {
return 1 ;
}
//f[i]表示 以arr[i]结尾的最长无重复连续子数组的长度
int f[] = new int[arr.length] ;
f[0] = 1 ;//初始化 只有一个元素的时候,必然为1
int maxLen = -1 ;//记录最长的那一个
for(int i = 1 ; i < f.length ; i ++) {//计算
f[i] = 1 ;
//遍历f[i-1],f[i-1]必然是无重复的
// 0,1,2,3,4
int len = 0 ;
for(int j = i-1 ; j >= i-f[i-1] ; j--) {
if(arr[j] != arr[i]) {
len ++ ;
} else {//有一个重复的 直接break
break ;
}
}
f[i] += len ;
if(f[i] > maxLen) {
maxLen = f[i] ;
}
}
return maxLen ;
}
}