1.思路
- 子数组是原数组
连续的元素组成的数组 - 无重复是指所有的元素
都不相同 - 通过
链表来存子数组 - 用
双循环来删掉上一轮子数组中重复值以前的所有数据
2.代码
import java.util.*;
public class Solution {
public int maxLength (int[] arr) {
int count=0;//记录无重复子数组的长度最大值
LinkedList<Integer> list = new LinkedList<Integer>();//存放子数组
for(int i = 0;i<arr.length;i++){
if(list.contains(arr[i])){//碰到重复值,删掉在list中重复值之前所有的数据
for(int j = list.indexOf(arr[i]);j>=0;j--){
list.removeFirst();
}
}
list.add(arr[i]);//不重复就往list里面添加
count = Math.max(count,list.size());//和自己比,更新最大值
}
return count;
}