AcWing 799. 最长连续不重复子序列 Java HashSet版本,易于理解
原题链接
简单
作者:
雷之呼吸
,
2024-04-01 21:22:49
,
所有人可见
,
阅读 1
Java 代码
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
HashSet<Integer> tmp = new HashSet<>();
int res = 0;
int n = in.nextInt();
int[] nums = new int[n];
for(int i=0;i<n;i++){
nums[i] = in.nextInt();
}
int i = 0,j = 0;
while(j<n){
if(!tmp.contains(nums[j])){
tmp.add(nums[j++]);
}else{
res = Math.max(res,j-i);
while(nums[i]!=nums[j]){
tmp.remove(nums[i++]);
}
//注意这部分一定要去除元素
i++;
tmp.remove(nums[j]);
}
}
res = Math.max(res,j-i);
System.out.print(res);
}
}