分享丨sss
25
发布于 江西

import java.util.*;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int T = scanner.nextInt();

while (T-- > 0) {

int n = scanner.nextInt();

int[] a = new int[n * 2];

for (int i = 0; i < n; i++) {

a[i] = scanner.nextInt();

a[i + n] = a[i];

}

int answer = 1;

for (int left = 0; left < n; left++) {

int[] count = new int[n + 1];

int kinds = 0;

int maxCount = 0;

int maxCountKinds = 0;

int oneCountKinds = 0;

for (int right = left; right < left + n; right++) {

int voice = a[right];

int oldCount = count[voice];

if (oldCount == 0) {

kinds++;

oneCountKinds++;

} else if (oldCount == 1) {

oneCountKinds--;

}

count[voice]++;

int newCount = count[voice];

if (newCount > maxCount) {

maxCount = newCount;

maxCountKinds = 1;

} else if (newCount == maxCount) {

maxCountKinds++;

}

int length = right - left + 1;

boolean valid =

kinds == 1 ||

length == kinds ||

(maxCountKinds == 1 &&

length - 1 == kinds * (maxCount - 1)) ||

(oneCountKinds == 1 &&

length - 1 == (kinds - 1) * maxCount);

if (valid) {

answer = Math.max(answer, length);

}

}

}

System.out.println(answer);

}

scanner.close();

}

}

评论 (0)