当前位置: 首页 > news >正文

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

题目来源:

AcWing - 算法基础课


题目内容:

给定一个长度为 n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。

输入格式

第一行包含整数 n。

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

输出格式

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

数据范围

1≤n≤105

输入样例:
5
1 2 2 3 5
输出样例:
3

思路分析:

双指针算法


代码实现:

#include <iostream>
using namespace std;

const int N=100010;
int a[N],s[N];//s[N]:记录每个元素的个数 

int main(){
	int n,r=0;
	cin>>n;
	for(int i=0,j=0;i<n;++i){//注意这里i++的写法 
		cin>>a[i];
		++s[a[i]];
		while(s[a[i]]>1){//当a[i]重复时,先把a[j]次数减1,再右移j。
			--s[a[j++]];	//有点懂了 
		}
		r=max(r,i-j+1);//i-j+1:是指2,3,5一共有三个数字 
	}
	cout<<r;
	return 0;
}

题目心得:

  1. 代码在dev上运行没有问题,但是提交到AcWing上就是不通过,我的写法和类似正确题解的写法几乎没有出入,这种情况,遇到已经不止一次了
  2. 这里如果不理解这道题的《双指针》思路,推荐大家去看这个博主(图解写得很棒)

相关文章:

  • iOS 中使用 FFmpeg 的高级功能 - 滤镜(Filters)
  • 切面收集日志
  • MapStruct 中 @BeforeMapping 和 @AfterMapping 注解的使用详解
  • 大数据学习(49) - Flink按键分区状态(Keyed State)
  • 【Java基础】数组性能优化
  • DeepSeek崛起的本质分析:AI变局中的中国机会
  • C 程序多线程拆分文件
  • Linux---软连接与硬链接
  • 【PowerBI】使用形状地图创建地图可视化
  • less-8 boolen盲注,时间盲注 函数补全
  • 瑞萨RA-T系列芯片ADCGPT功能模块的配合使用
  • key-value---键值对
  • --- Mysql事务 ---
  • github在同步本地与远程仓库时遇到的问题
  • Exadata环境ORA-00603 AND ORA-27515报错的分析处理
  • leetcode刷题-动态规划05
  • PHP 可用的函数
  • Groovy语言的学习路线
  • 有关表单autocomplete = “off“ 失效问题解决方案
  • 如何commit后更新.gitignore实现push
  • 制作小程序需要什么技术/济南seo网站排名关键词优化
  • 专业做尼泊尔的旅行网站/合肥seo管理
  • wordpress codebox/贵州二级站seo整站优化排名
  • 一家只做性价比的网站/世界大学排名
  • 用php做动态网站大作业/餐饮最有效的营销方案
  • 建设网站模板免费/今日全国最新疫情通报