深入解析:P1420 最长连号
记录6
#include
using namespace std;
int main() {
int n,a[10010]={},cnt=1,max=0;
cin>>n;
for(int i=1;i>a[i];
for(int i=2;i<=n;i++){
if(a[i-1]+1==a[i]) cnt++;
else cnt=1;
if(max
突破点
从小到大的连续自然数
思路
- 输入后,从第二个开始跟前一个对比,连续就统计,不连续就重新统计
- 创建max变量,来存储统计的最大数量
代码简解
if(a[i-1]+1==a[i]) cnt++;
else cnt=1;
if(max
因为数组从下标1开始存储,对于a[i-1]+1==a[i]中的i从下标2开始,可以直接访问前一个数据
else cnt=1;每一次for循环都会进行判断,如果连续就记录,不然就重置为1(从不一样的这个开始判断连续,开始的第一个自然数计数为1)
注意点
max目的是存放最大值,一开始初始化就要按照小的初始化,这样就能从第一个数据开始记录
例如:
数据:6 6 7 8 2 3 3 3
初始化 max=9,没有意义,最多连续是 6 7 8 三个
初始化 max=0或者-1,有连续的时候就会记录,从一记录到三
同理,min要存放个极大值
浙公网安备 33010602011771号