文章

150

粉丝

0

获赞

558

访问

23.2k

头像
骑车路线 题解:
P1737 华东师范大学2021年机试题
发布于2026年2月13日 11:39
阅读数 99

#include<bits/stdc++.h>
using namespace std;

int main(){    
    int n;
    while(cin >> n){
		vector<int> dp(n);
		for(int i=0;i<n;i++)
		 	cin >> dp[i];		          
        int maxDiff = 0;  // 最大高度差      
        // 遍历每个可能的爬坡起点
        for (int i = 0; i < n; ) {
            // 找从i开始的连续上升序列
            int j = i + 1;           
            // 连续上升:后一个 > 前一个
            while (j < n && dp[j] > dp[j - 1]) {
                j++;
            }           
            // 如果长度至少为2,计算高度差
            if (j - i >= 2) {
                int diff = dp[j - 1] - dp[i];  // 最后一个 - 第一个
                maxDiff = max(maxDiff, diff);
            }           
            // 从j开始新的爬坡(注意:j可能等于i+1,即没有上升)
            i = j;
        }
        cout << maxDiff << endl;
    }   
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发