#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define maxn 2000010
#define mod 10000000007
#define pair pair<int, int>
#define make make_pair
int n;
int a[5010];
inline long long read() {
long long x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-')
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
x = x * 10 + ch - '0', ch = getchar();
return x * f;
}
void write(long long x) {
if (x < 0)
putchar('-'), x = -x;
if (x > 9)
write(x / 10);
putchar(x % 10 + '0');
return;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
int ans = -1;
for (int i = 1; i <= n; i++) {
for (int d = 1; d <= n - i; d++) {
int len = 1;//最大长度
for (int j = i; j <= n - d; j += d) {
if (a[j] != a[j + d]) break;//不满足就取消遍历。
else len++;
}
ans = max(ans, len);
}
}
cout << max(1, ans);//为了防止 n = 1 的情况,因为这样子 ans = -1
return 0;
}
请问代码复杂度是否是 O(n3)。