P1567 气温统计

P1567

题目描述

  炎热的夏日,KC 非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。

  经历千辛万苦,他收集了连续 N(1N10^6) 的最高气温数据。

  现在,他想知道最高气温一直上升的最长连续天数。

输入输出格式

输入格式: 

  第 1 行:一个整数 N。1N10^6

  第 2 行:N个空格隔开的整数,表示连续 NN天的最高气温。0 ≤ 最高气温 ≤ 10^9 。

输出格式:

  一个整数,表示最高气温一直上升的最长连续天数。

输入输出样例

输入:

10
1 2 3 2 4 5 6 8 5 9

输出:

5

解法:

 1 #include <bits/stdc++.h>
 2 using namespace std;    
 3 int n,a[1000000]; 
 4 int main(){
 5     int m=1,mm=1;
 6     cin>>n;
 7     for(int i=0;i<n;i++)cin>>a[i];
 8     for(int i=1;i<n;i++){
 9         if(a[i]>a[i-1])mm++;
10         else if(mm>m){
11             m=mm;
12             mm=1;
13         }else mm=1;
14     }
15     if(mm>m)m=mm;
16     cout<<m<<endl;
17     
18     return 0;
19 }

或者:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main(){
 4     int n,tem1=0,tem2=0,a=0,b=0;//分别是N,温度1,温度2,以及统计天数用的两个参量 
 5     cin>>n;
 6     for(int k=0;k<n;k++){
 7         cin>>tem2;
 8         if(tem2>tem1)
 9             a+=1;//若第二天(tem2)的温度大于前一天的温度(tem1),则天数加一 
10         else{
11             b=(a>b)?a:b;//否则,令b等于a,b中较大值 
12             a=0;//并把a清空 
13         }
14         tem1=tem2;//对于第三天来说,第三天的温度是tem2,第二天的温度是tem1 
15     }
16     cout<<b+1;//本代码天数统计的起点是0,但题目是1,也可在初始赋值是将a=0改为a=1 
17     return 0;
18 }
原文地址:https://www.cnblogs.com/cruelty_angel/p/10373927.html