题解 | #最长无重复子数组#
最长无重复子数组
http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
快慢指针配合HashMap去重
import java.util.*;
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
// write code here
Map<Integer,Integer>map=new HashMap<>();
int n=arr.length;
if(n<=1){
return n;
}
int i=0;
int j=0;
int max=1;
while(j<n&&i<n){
if(!map.containsKey(arr[j])){
map.put(arr[j],arr[j]);
max=Math.max(max,j-i+1);
}
else {
while(i<j){
if(arr[i]==map.get(arr[j])){
i++;
break;
}
map.remove(arr[i]);
i++;
}
}
j++;
}
return max;
}
}