最长无重复子数组
最长无重复子数组
import java.util.*;
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
// write code here
//最大长度为max,初始化为0
//从数组第0个开始,贪吃,直到有重复元素,和max比较,如果大于max,把这个数组的长度赋予max
//判断字符串是否有重复元素,遍历字符串放入map,map的key的长度和字符串的长度不一致,则说明有重复元素
if(arr.length==0){
return 0;
}
if(arr.length==1){
return 1;
}
int max = 1;
List<Integer> ls = new ArrayList<Integer>();
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for(int i=0; i<arr.length; i++){
ls.clear();
map.clear();
ls.add(arr[i]);
map.put(arr[i],i);
for(int j=i+1; j<arr.length; j++){
if(map.containsKey(arr[j])){
if(map.size()>max){
max = map.size();
}
break;
}
ls.add(arr[j]);
map.put(arr[j],j);
if(j==arr.length-1){
if(map.size()>max){
max = map.size();
}
}
}
}
return max;
}
}