/*
给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?
输入格式
输入的第一行包含一个整数 n,表示数列中整数的个数。
第二行包含 n 个整数 a1,a2,…,an,表示给定的数列,相邻的整数之间用一个空格分隔。
输出格式
输出一个整数,表示给定的数列有多个段。
数据范围
1≤n≤1000,
0≤ai≤1000
输入样例:
8
8 8 8 0 12 12 8 0
输出样例:
5
样例解释
8 8 8 是第一段,0 是第二段,12 12 是第三段,倒数第二个整数 8 是第四段,最后一个 0 是第五段。
*/
题目描述
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int n;
cin >> n;
int a[1010];
int res = 0;
//一定要把数组设定的大一点 后面循环的时候可以用本来的大小 但设定的时候需要大一点 否则数组越界扣20
for(int i = 0; i < n ; i++)
cin >> a[i];
if(n == 1){
res = 1;
cout << res;
}
else{
for(int i = 0;i < n ;i++)
if(a[i] == a[i + 1]) res += 0;
else{
res += 1;
}
cout << res;
}
return 0;
}
//
//#include <iostream>
//#include <cstring>
//#include <algorithm>
//
//using namespace std;
//
//const int N = 1010;
//
//int n;
//int q[N];
//
//int main()
//{
// cin >> n;
// for (int i = 0; i < n; i ++ ) cin >> q[i];
// int res = 1;
// for (int i = 1; i < n; i ++ )
// if (q[i] != q[i - 1])
// res ++ ;
// cout << res << endl;
// return 0;
//}