AcWing 799. 最长连续不重复子序列 双指针(一般先写一个朴素暴力的做法,然后看两个指针直接是否存在单调关系,如果存在,就想方法优化)

https://www.acwing.com/problem/content/801/

#include<bits/stdc++.h>
using namespace std ;
int n;
const int N=100100;
int a[N],s[N];   //a数组用来记录数字,s数组用来记录每个数字出现过的次数
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<<endl;
    return 0;
}

 

 

#include<bits/stdc++.h>
using namespace std;
int main() {
    char str[1000];
    gets(str);
    int n=strlen(str);
    for(int i=0; i<n; i++) {
        int j=i;
        while(j<n&&str[j]!= ) j++;
        for(int k=i; k<j; k++) cout<<str[k];
        cout<<endl;
        i=j;
    }
}

 

AcWing 799. 最长连续不重复子序列 双指针(一般先写一个朴素暴力的做法,然后看两个指针直接是否存在单调关系,如果存在,就想方法优化)

上一篇:1.1 环境搭建及依赖包安装


下一篇:小程序体积大于2M不能上传和预览,怎么处理