import java.util.*; public class Solution { /** * * @param arr int整型一维数组 the array * @return int整型 */ public int maxLength (int[] arr) { // write code here if(arr.length == 0){ return 0; } if(arr.length == 1){ return 1; } //用来存放当前动态计算的的数 ArrayList<Integer> curlist = new ArrayList<>(); //用来存放当前最长无重复的数 ArrayList<Integer> maxlist = new ArrayList<>(); curlist.add(arr[0]); maxlist.add(arr[0]); for(int i = 1;i<arr.length;i++){ if(curlist.contains(arr[i])){ //已经包含了 就把之前的舍弃掉 Iterator<Integer> it = curlist.iterator(); while(it.hasNext()){ if(it.next() == arr[i]){ it.remove(); break; } else { it.remove(); } } } curlist.add(arr[i]); //和maxList比较哪个长保留哪个 if(maxlist.size() < curlist.size()){ maxlist.clear(); maxlist.addAll(curlist); } } return maxlist.size(); } }