P4241.第2题-最长子数组的长度
题目内容
给定一个长度为n的整数序列a1,a2,...,an。我们称一个非空连续子数组al,al+1,...,ar,存在“唯一众数”,当且仅当在该子数组中,出现次数最多的数恰好只有一个(即最高频次仅由某一个数独占)。
请你求出存在唯一众数的最长子数组的长度。若不存在这样的子数组,则输出0。
名词解释:
子数组:指原序列中一段连续的元素al,al+1,...,ar(1≤l≤r≤n)。
唯一众数:在一个集合或序列中,出现次数最多的元素。若这一“最多次数”由多个不同元素同时达到,则不存在“唯一众数"。
输入描述
每个测试文件均包含多组测试数据。第一行输入一个整数
T(1≤T≦103)代表数据组数,每组测试数据描述如下:
第一行输入一个整数n(1≦n≦2×103);
第二行输入n个整数a1,a2,...,an(∣ai∣≦109)
保证所有测试中n的总和不超过2×103。
输出描述
对于每组测试数据,输出一行一个整数,表示存在唯一众数的最长子数组长度;若不存在,输出0
样例1
输入
3
5
1 2 2 3 3
3
7 7 7
4
1 1 2 2
输出
4
3
3
说明
样例一:整个数组的最高频次由2和3同时达到,不是唯众数;但子数组[1,2,2,3]中2的频次为2且独占最高频,长度为4,为最优。
样例二:[7,7,7]的众数为7且唯一,答案为3。
样例三:[1,1,2]或[1,2,2]的众数分别为1或2,且均唯一,最长长度为3。