题解 | #最长无重复子数组#
最长无重复子数组
https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
// write code here
int min = 0, max = 0;
List<Integer> list = new ArrayList<>();
Set<Integer> set;
int j = 0;
for(int i = 0; i < arr.length; i++){
for(; j < arr.length; j++){
list.add(arr[j]);
set = new HashSet<>(list);
if(list.size() > set.size()){
j++;
break;
}
if(j - i > max - min){
max = j;
min = i;
}
if(j == arr.length - 1)
return max - min + 1;
}
list.remove(Integer.valueOf(arr[i]));
}
return max - min + 1;
}
}
查看11道真题和解析
