
解法:用set来判断重复,用双指针来确定长度,右指针扩展,左指针缩减至不重复。
import java.util.*;
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
// write code here
if(arr.length<2){
return arr.length;
}
Set<Integer> set = new HashSet<>();
int max = 0;
int left = 0;
int right = 0;
while(right<arr.length){
if(set.contains(arr[right])){
while(set.contains(arr[right])){
set.remove(arr[left++]);
}
}
set.add(arr[right++]);
max = Math.max(max,set.size());
}
return max;
}
}
该博客介绍了如何利用Java编程语言,通过HashSet数据结构和双指针技巧解决寻找整数数组中最长无重复元素子数组的长度问题。代码中详细展示了算法实现过程,包括当右指针遇到重复元素时,左指针回溯以移除重复项,同时更新最大长度。
683

被折叠的 条评论
为什么被折叠?



