双指针算法,用数组记录
static int getLong(int [] arr){
int n = 100;
int [] a= new int[n];
for (int i = 0; i < arr.length; i++) {
a[i]=arr[i];
}
int []s = new int[n];
int res = 0;
for (int i = 0,j=0; i < n; i++) {
s[a[i]]++;//对i此时的数字标记一下,标记为1
while (s[a[i]] > 1) {//如果这个时候他的次数大于1了,说明重复了,要进行处理
s[a[j]]--; // 让左边的指针右移一位,右边的数字--。知道把重复的剪成1
j++;
}
res = Math.max(res,i-j+1); // 贪心
}
return res;
}