给定一个长度为
第一行包含整数
第二行包含
共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。
5
1 2 2 3 5
3
前置题目:0798
前置知识:语法
本题知识:基础算法-双指针
有点类似桶排序的方法,用一个数组记录每个数字出现的次数,这样就可以判断出是否重复
// 每次 j 的位置都是向左最远能到达的满足条件(不重复)的位置
1 2 2 3 5 最大值1
i
j
1 2 2 3 5 最大值2
i
j
1 2 2 3 5
i
j
1 2 2 3 5 最大值 (1 < 2) 还是2
i
j
1 2 2 3 5 最大值 (2 < 3) 是3
i
j
// 两根指针常用解题代码
for i, j := 0, 0; i < n; i++ {
for j < i && check(i, j) {
j++
}
}