AcWing 799. 最长连续不重复子序列
2021-06-03 23:06
标签:整数 答案 pac 出现 联系 起点 lap int 说明 网址 https://www.acwing.com/solution/AcWing/content/2069/ 题目描述 算法1 如果r增加的时候 添加的元素在区间已经有了 那么就从窗口起点开始逐个弹出 直到将重复的元素弹出 if (m[v[r]] ) { AcWing 799. 最长连续不重复子序列 标签:整数 答案 pac 出现 联系 起点 lap int 说明 原文地址:https://www.cnblogs.com/itdef/p/10886600.html
给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续子序列,输出它的长度。
(枚举) O(n)O(n)
滑动窗口 记录窗口的起始点 l r
同时使用一个数组或者map记录该窗口区间各个数字出现的次数(后来证明使用map会超时)
vector[HTML_REMOVED] v(N,0);
这样r就可以添加滑动窗口区间了
//说明r中的元素 已经在滑动窗口区间出现了 那么需要将区间里的元素弹出
while (v[l] != v[r]) {
if(m[v[l]]) m[v[l]]--;
l++;
}
if (m[v[l]] )m[v[l]]--;
l++;
}
每次添加成功 记录窗口的长度值 和答案比较 答案取值其中最大的值
ans = max(ans, r - l + 1); 1 #include
文章标题:AcWing 799. 最长连续不重复子序列
文章链接:http://soscw.com/index.php/essay/90162.html