码迷,mamicode.com
首页 > 其他好文 > 详细

P1420 最长连号

时间:2020-01-30 23:06:07      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:cin   using   family   for   names   http   font   alt   soft   

P1420   最长连号

技术图片

 

 本题是一道常见的模拟题目

技术图片

 

 

 具体解题步骤如下:

已经输入给出数据个数,所以就以此做循环条件,每次输入一个数,判断是否为上一个数加一(连续自然数)。

1,如果是,则临时计数(sum)加一,

2,如果不是(断了),则将临时计数(sum)清零。

在此期间若临时计数超过答案(初始值为1),则把临时计数的值赋给答案,这样临时计数清零后可保留目前最长的连续数个数。最终每个数据都判断完成后输出答案

但要注意的是,计数时包括第一个数,所以临时计数和答案的初值都应为1,这样计数才会算上第一个,清零时其实是清“一”

代码如下:

 

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,a[10000]={},i,sum=0,maxn=0;
 6     cin>>n;
 7     for(i=0;i<n;i++)
 8     {
 9         cin>>a[i];
10     }
11     for(int i=0;i<n;i++)
12     {
13         if(a[i]+1==a[i+1])
14             sum++;
15         else sum=0;
16         if(sum>maxn)
17             maxn=sum;
18     } 
19     cout<<++maxn;
20     return 0;
21 } 

 

本题比较简单,下面拓展一下排序与去重的代码。(方便使用)

 

 1 #include <iostream>
 2 #include <algorithm>   // sort(), unique()
 3 #include <functional>  // less<int>()
 4 using namespace std;
 5 int main()
 6 {
 7     int p,i;
 8     cin>>p;
 9     int a[p];
10     for(i=0;i<p;i++)
11         cin>>a[i];
12     sort(a,a+p,less<int>());  // 排序
13     int n=unique(a,a+p)-a;   // 去重
14     for (i=0;i<n;i++)
15         cout<<a[i]<<" ";
16 }

P1420 最长连号

标签:cin   using   family   for   names   http   font   alt   soft   

原文地址:https://www.cnblogs.com/Kyriech-Francis/p/12244017.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!