import java.util.*; public class Solution { /** * * @param arr int整型一维数组 the array * @return int整型 */ public int maxLength (int[] arr) { // write code here int len = arr.length; if(len <= 1){ return len; } // 双指针 int p = 0; int q = 0; int max = 0; HashMap<Integer, Integer> map = new HashMap<>(); while(q!=len && p!=len){ if(map.containsKey(arr[q])){ if(max < map.keySet().size()){ max = map.keySet().size(); } map = new HashMap<>(); p++; // 重新定位双指针位置 q = p; } map.put(arr[q], 0); q++; } return max == 0 ? len: max; } }