题解
难度:简单
知识点:数学逻辑
思路:
1.使用count变量来记录总的区间数
2.通过一层循环,依次判断两个相邻数是否连续,首先输入当前数子x,将x的前一个数保存在flat变量中。若flat+1=x,表示相邻数连续,将x值赋值给flat进行下一个数的判断。若flat+1不等于x,表示出现新区间,将count自加一,并且将x值赋值给flat进行下一个数的判断。
3.循环结束后输出count。
【注】不需要把数据进行存储,直接读进来进行相差是否为1的判断,时间复杂度o(n),空间复杂度为o(1)。
#include<iostream> using namespace std; int main(){ int n,x; int flat; cin>>n>>x; int count=1; flat=x; for(int i=1;i<=n-1;i++){ cin>>x; if(flat+1!=x) count++; flat=x; } cout<<count<<endl; return 0; }