#include <stdio.h>
int max(int a, int b) { if (a >= b) return a; else return b; }
int main() {
int n;
scanf("%d", &n);
int a[100000];
int len = 1;
int len_max = 1;
int flag = 0;
for (int i = 0; i < n - 1; i++) {
scanf("%d", &a[i]);
}
getchar();//无用
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j <= n - 2; j++) {
if ((a[i] + 1) == a[j]) {
len++;
len_max = max(len, len_max);
break;
} else {
flag = 1;
//len_max = max(len, len_max);//只能计算最后一个顺子前面的顺子最大的
len = 1;//最后一个若是顺子就记不了
break;
}
}
}
if (flag == 1) {
printf("%d", len_max);
} else if (flag == 0) {
printf("%d", n - 1);
}
return 0;
}
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[100000];
for (int i = 0; i < n - 1; i++) {
scanf("%d", &a[i]);
}
int max_len = 1; // 至少1个元素***
int current_len = 1;
//单次循环就能解决问题
for (int i = 1; i < n - 1; i++) { // 从第2个元素开始遍历***
if (a[i] == a[i - 1] + 1) {
current_len++;
max_len = current_len > max_len ? current_len : max_len;
} else {
current_len = 1; // 不连续时重置当前长度***
}
}
printf("%d\n", max_len);
return 0;
}