最幸运的小孩(ง •̀_•́)ง 2024-04-09 18:04 采纳率: 10.5%
浏览 4

双指针问题之寻找最长不重复子序列

最长连续不重复子序列,不知道为什么超时了,过了9个数据
给定一个长度为 n
的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。

输入格式
第一行包含整数 n

第二行包含 n
个整数(均在 0∼105
范围内),表示整数序列。

输出格式
共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。

数据范围
1≤n≤105
输入样例:
5
1 2 2 3 5
输出样例:
3


```c++
#include<iostream>
#include<cstring>
using namespace std;
const int N=100009;
int a[N],n,len=1,res[N];
bool check(int x,int y){
    memset(res,0,sizeof(res));
    for(int i=y;i<=x;i++){
        if(res[a[i]]==1)  return true;
        res[a[i]]=1;
    }
    return false;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)  cin>>a[i];
    for(int i=1,j=1;i<=n;i++){
        while(j<i&&check(i,j)) j++;
        len=max(len,i-j+1);
    }
    cout<<len<<endl;
    return 0;
}


```

  • 写回答

6条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-04-09 18:04
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    题目描述 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。 输入格式 第一行包含整数 n。 第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。 输出格式 共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。 数据范围 1≤n≤105 样例 输入样例: 5 1 2 2 3 5 输出样例: 3 C++ 代码
    评论

报告相同问题?

问题事件

  • 创建了问题 4月9日