NC41 最长无重复子数组
描述
给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。
子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组
import java.util.*;
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
// write code here
Set<Integer> list = new HashSet<Integer>() ;
//Arrays.sort(arr) ;
int left = 0 , right = 0 ;
int maxlen = 0 ;
while(right < arr.length){
while(list.contains(arr[right])){
list.remove(arr[left++]) ;
}
list.add(arr[right++]) ;
maxlen = Math.max(maxlen , right - left) ;
}
return maxlen ;
}
}