题目描述
瑞神的数学一向是最好的,连强大的咕咕东都要拜倒在瑞神的数学水平之下,虽然咕咕东很苦 恼,但是咕咕东拿瑞神一点办法都没有。
5.1期间大家都出去玩了,只有瑞神还在孜孜不倦的学习,瑞神想到了一个序列,这个序列长度为 ,也就是一共有 个数,瑞神给自己出了一个问题:数列有几段?
段的定义是连续的相同的最长整数序列
输入描述
输入第一行一个整数n,表示数的个数 接下来一行n个空格隔开的整数,表示不同的数字
输出描述
输出一行,这个序列有多少段
样例输入
12
2 3 3 6 6 6 1 1 4 5 1 4 123
样例输出
8
问题解答
这道题看起来很简单,做起来也很简单,序列的数如果和前面的数不一样,段+1。唯一可以做得就是空间优化一下,不开设数组存储序列,不过好像也没有什么必要。
#include<stdio.h>
int main(){
int n,x,old,ans=0;
scanf("%d",&n);
if(n>0) {
scanf("%d",&old);
ans++;
}
for(int i=1;i<n;i++){
scanf("%d",&x);
if(x!=old){
ans++;
old=x;
}
}
printf("%d",ans);
return 0;
}