[15836]小埋的优雅序列题解

题目描述

小埋最近迷上了优雅序列。
优雅序列的定义是,在一段连续的序列中,包含的数字中不会出现重复数字。
现在给你一个长度为n的数组,请你告诉小埋其中最长的优雅序列的长度是多少。

输入格式

第一行是一个正整数n,n表示数组的长度。
第二行有n用空格隔开的正整数,有n个整数数字i。

输出格式

一个整数,符合题目要求的最长子数组的长度。

样例#1

样例输入#1

5
1 2 3 1 2

样例输出#1

3

样例 #2

样例输入 #2

9
1 1 1 2 2 2 1 1 3

样例输出 #2

2

数据范围

1<=n<=2∗10^5;
1<=i<=2∗10^5。

题目思路

该题要求求出一段连续的子序列,使其中不包含重复数字。
那么就可以想到用一个unordered_set来存储当前子序列中出现过的数字
接下来就是注意用双指针来表示当前的序列范围就可以了

核心代码

//arr为输入的序列
    unordered_set<int> lib;
	int left=0,ret=0;
	for(int right=0;right<n;right++)
	{
		while(lib.find(arr[right])!=lib.end())
		{
			lib.erase(arr[left]);
			left++;
		}
		lib.insert(arr[right]);
		ret=max(ret,right-left+1);
	}
2 个赞

大佬膜拜%%%

大佬膜拜%%%

这题还有另外一个名字叫《 百万富翁的第二次实验》,我们以前模考的题目

哈哈哈,太有实力了

1 个赞

哇塞,第一次看到dalao发题解,%%%

1 个赞

@陶荣杰1 还真是

虽然是学习帖,但还是想说
小埋是某部漫的主角doge