瑞神的序列
瑞神的数学一向是最好的,连强大的咕咕东都要拜倒在瑞神的数学水平之下,虽然咕咕东很苦恼,但是咕咕东拿瑞神一点办法都没有。
5.1期间大家都出去玩了,只有瑞神还在孜孜不倦的学习,瑞神想到了一个序列,这个序列长度为n,也就是一共有n个数,瑞神给自己出了一个问题:数列有几段?
段的定义是位置连续的数值相同的最长整数序列
Input
输入第一行一个整数n,表示数的个数
接下来一行n个空格隔开的整数,表示不同的数字
Output
输出一行,这个序列有多少段
Sample Input
12
2 3 3 6 6 6 1 1 4 5 1 4
Sample Output
8
我的思路:
这道题是要求数列的段数,其中定义连续且相同的最长序列为一个段。那么这要判断数列要经历几次不同值的变换即可。在实现方面可以比较当前的数和前一个是否相同,不相同则加一。(ans从1开始)
我的总结:
这道题只要弄明白段的含义即可。
我的代码:
#include<iostream>
#include<algorithm>
using namespace std;
int cur1,cur,n,ans=1;
int main()
{
cin>>n;
cin>>cur1;
n--;
while(n--)
{
cin>>cur;
if(cur!=cur1) ans++;
cur1=cur;
}
cout<<ans;
return 0;
}