给定一个长度为 最佳连续子数组(秋季每日一题 26)_i++ 的数组 最佳连续子数组(秋季每日一题 26)_数据_02

请你找到其中的最佳连续子数组。

最佳连续子数组需满足:

  1. 子数组内各元素的算术平均数(即所有元素之和除以元素个数)尽可能大。
  2. 满足条件最佳连续子数组(秋季每日一题 26)_子数组_03

输出最佳连续子数组的长度。

输入格式
第一行包含整数 最佳连续子数组(秋季每日一题 26)_子数组_04,表示共有 最佳连续子数组(秋季每日一题 26)_子数组_04

每组数据,第一行包含整数 最佳连续子数组(秋季每日一题 26)_i++

第二行包含 最佳连续子数组(秋季每日一题 26)_i++ 个整数 最佳连续子数组(秋季每日一题 26)_数据_02

输出格式
每组数据输出一行结果,表示最佳连续子数组的长度。

数据范围
最佳连续子数组(秋季每日一题 26)_i++_09
最佳连续子数组(秋季每日一题 26)_双指针_10
最佳连续子数组(秋季每日一题 26)_思维题_11
同一测试点内所有 最佳连续子数组(秋季每日一题 26)_i++ 的和不超过 最佳连续子数组(秋季每日一题 26)_思维题_13

输入样例:

1
5
6 1 6 6 0

输出样例:

2

#include<iostream>

using namespace std;

const int N = 100010;

int n;
int q[N];

int main(){

int t;
scanf("%d", &t);

while(t--){

scanf("%d", &n);
int mx = 0;
for(int i = 0; i < n; i++){
scanf("%d", &q[i]);
mx = max(mx, q[i]);
}

int res = 0;
for(int i = 0; i < n; i++)
if(q[i] == mx){

int j = i + 1;
while(j < n && q[j] == mx) j++;

res = max(res, j - i);
i = j;
}
printf("%d\n", res);
}

return 0;
}