题目描述
一个长度为n的数字序列可划分为几段。
段:连续的相同的最长整数序列
Input
第一行一个正整数n,代表序列长度
第二行n个空格隔开的数,代表序列
Output
输出该序列段数
解题思路
以当前的数为段的标识数,依次遍历,相同的过,不同的则说明不在一个段内,ans+1,并以最新的数作为新段的标识,整个序列遍历完成后直接输出ans即可。
实现代码
#include<iostream>
using namespace std;
int a[1010];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;++i)
cin>>a[i];
int flag=a[0],ans=1;
for(int i=1;i<n;++i)
{
if(a[i]!=flag)
{
flag=a[i];
ans++;
}
}
cout<<ans<<endl;
return 0;
}
总结
很直白的签到题,白给。