【算法】799. 最长连续不重复子序列

题目

799. 最长连续不重复子序列

思路

用两个指针,i在j的右边,初始时i=j=0,然后移动i,每移动一次就让s[a[i]]加上1,再判断是否有次数大于1,如果有就要移动j,并减少s[a[j]]的次数。

代码

cpp 复制代码
#include<iostream>
using namespace std;
const int N=100010;
int n;
int a[N],s[N];
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    int res=0;
    for(int i=0,j=0;i<n;i++)
    {
        s[a[i]]++;
        while(s[a[i]]>1)
        {
            s[a[j]]--;
            j++;
        }
        res=max(res,i-j+1);
    }
    cout<<res;
    return 0;
}
相关推荐
佑白雪乐15 分钟前
LCR 175. 计算二叉树的深度
算法·深度优先
阿Y加油吧22 分钟前
力扣打卡day07——最大子数组和、合并区间
算法
想吃火锅100526 分钟前
【leetcode】105. 从前序与中序遍历序列构造二叉树
算法·leetcode·职场和发展
2401_8318249632 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
靠沿35 分钟前
【优选算法】专题十八——BFS解决拓扑排序问题
算法·宽度优先
cui_ruicheng38 分钟前
C++数据结构进阶:哈希表实现
数据结构·c++·算法·哈希算法·散列表
光电笑映40 分钟前
高阶数据结构之红黑树详解
数据结构
li星野1 小时前
[特殊字符] 模拟试卷一:C++核心与系统基础(90分钟)答案版
开发语言·c++·算法
二进制星轨1 小时前
leecode-283-移动零-算法题解
算法
老鼠只爱大米1 小时前
LeetCode经典算法面试题 #215:数组中的第K个最大元素(快速选择、堆排序、计数排序等多种实现方案详解)
算法·leetcode·堆排序·快速选择·topk·数组中的第k个最大元素