P1567 统计天数

题目描述

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

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

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

输入格式

第 1 行:一个整数 NN 。1 leq N leq 10^61N106

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

输出格式

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

输入输出样例

输入 #1
10
1 2 3 2 4 5 6 8 5 9
输出 #1
5
###第一次没看数据范围直接搞RE了
#include <iostream>
#include<algorithm>
using namespace std;

const int N = 100010;

int n;
int a[N], s[N];

int main()
{
    scanf("%d", &n);
    for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);

    int res = 1;
    int cnt = 0;
    for(int i = 0;i < n;i++){
        
        if(a[i + 1] > a[i]){
            cnt++;
        }else {
            cnt = 0;
        }
        res = max(res,cnt);
    }    
cout << res+1;
    return 0;
}

  

###第二次因为没判断0对了7个测试点
#include <iostream>
#include<algorithm>
using namespace std;

const int N = 100010;

int n;
int a[N], s[N];

int main()
{
    scanf("%d", &n);
    int x = 0;
    int a[2];
    int res = 0;
    while(n --){
    	cin >> a[1];
    	if(a[1] > a[0]){
    		x++;
    		res=max(x,res);
    	}else x = 0;
    	a[0] = a[1];
    }
   cout << res+1;
    return 0;
}

  

###过的代码
#include <iostream>
#include<algorithm>
using namespace std;

const int N = 100010;

int n;
int a[N], s[N];

int main()
{
    scanf("%d", &n);
    int x = 0;
    int a[2];
    int res = 0;
    while(n --){
    	cin >> a[1];
    	if(a[1] > a[0]){
    		x++;
    		res=max(x,res);
    	}else x = 0;
    	a[0] = a[1];
    }
    if(res == 0){
    	cout << 0;
    }else cout << res+1;
    return 0;
}

  

原文地址:https://www.cnblogs.com/luyuan-chen/p/11629149.html