解题思路:两次买卖, 求最大区间差
注意事项:
参考代码:
#include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N = 1e5 + 10; int a[N],f1[N],f2[N],t,n; int main() { cin >> t; while(t --){ memset(a, 0, sizeof a); memset(f1, -0x3f, sizeof f1); memset(f2, -0x3f, sizeof f2); cin >> n; for(int i = 1; i <=n; i ++ ) cin >> a[i]; int mi = 0x3f3f3f3f, mx = -0x3f3f3f3f; for(int i = 1; i <= n; i ++) { mi = min(mi, a[i]); f1[i] = max(f1[i-1],a[i] - mi); } for(int i = n; i >= 1; i --){ mx = max(mx,a[i]); f2[i] = max(f2[i+1],mx - a[i]); } int ans = -0x3f3f3f3f; for(int i = 1; i <= n ; i ++) ans = max(ans, f1[i] + f2[i]); cout << ans << endl; } return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1178 |
【出圈】 (C语言代码)浏览:590 |
【蟠桃记】 (C语言代码)浏览:711 |
淘淘的名单 (C语言代码)答案错误???浏览:624 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:611 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:1000 |
矩阵加法 (C语言代码)浏览:1768 |
Tom数 (C语言代码)浏览:758 |
sizeof的大作用 (C语言代码)浏览:1138 |
1054题解浏览:516 |