连号区间数
#include
#include
#include
using namespace std;
int n;
const int N = 10010;
int a[N];
int main() {
scanf_s("%d", &n);
for (int i = 0; i < n; i++) {
scanf_s("%d", &a[i]);
}
int max=0, min=0,res=0;
for (int i = 0; i for (int j = i; j for (int k = i; k < j - i + 1; k++) {
max = a[k] > max ? a[k] : max;
min = a[k] < min ? a[k] : min;
}
if ((max - min) == (j - i)) {
res++;
//printf("%d %d\n", i,j);
}
}
}
printf("%d", res);
return 0;
}
//样例3不过
#include
#include
#include
using namespace std;
const int N = 10010;
int n;
int a[N];
int main() {
scanf_s("%d", &n);
for (int i = 0; i < n; i++) {
scanf_s("%d", &a[i]);
}
int res = 0;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {//双重循环,所有可能的区间
sort(&a[i], &a[j]);//[i,j]
bool flag = true;
for (int k = i; k < j - i; k++) {//k < j - i//见图
if (a[k+1] == a[k] + 1) flag = true;
else flag = false;
}
if (flag == true) {
res++;
//printf("%d %d\n", i,j);
}
}
}
printf("%d", res);
return 0;
}
//整体错误
求问:两种做法错哪了,怎么改?
这些数据是乱序的,第一段程序里排序都没有