#15. 最长不重复子序列
最长不重复子序列
给定一个长度为 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。
输入格式
第一行包含整数 。
第二行包含 个整数(均在 范围内),表示整数序列。
输出格式
共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。
数据范围
输入样例:
5
1 2 2 3 5
输出样例:
3
数据 1(样例风格):基础正确性。
数据 2(n=1):卡边界处理(初始化/输出)。
数据 3(全相同):卡错误返回 0、或窗口更新逻辑错误(应为 1)。
数据 4(全不重复):卡 off-by-one(应输出 n),以及错误地认为必须出现重复才更新。
数据 5(大量相邻重复):卡“只遇到重复就把 l++ 一次”这种错法(需要正确移动到重复元素上一次出现位置之后)。
数据 6(重复值相隔很远):卡“只用 set 但不记录上次位置/移动 l 不够远”导致答案偏大或偏小。
数据 7(重复值多次出现,且有些重复在窗口左边界之外):专门卡错误写法:l = last[x] + 1 但不判断 last[x] >= l,导致 l 被错误回退/乱跳。
数据 8(同一元素多次重复穿插):卡 set 方案“删除不彻底/没用 while 循环移除直到无重复”,以及窗口更新不正确。
数据 9(含 0 和 100000 等边界值):卡值域边界、数组开小/哈希处理不当等。
数据 10(n=1e5 大数据,周期重复,答案=50000):强力卡复杂度:O(n^2) 暴力/每次重置 set 会 TLE;也卡实现细节在大数据下崩溃。