最长无重复子数组
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;
} }
标签:map,arr,return,int,max,重复子,数组,最长 From: https://www.cnblogs.com/northli/p/16885694.html