警示后人
查看原帖
警示后人
1557826
Kingsleytang楼主2025/7/23 16:18
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6 + 1;
//const int inf = 0x3f3f3f3f;
int a[N];
signed main(){
	int n;
	cin >> n;
	for(int i = 1 ; i <= n ; i ++){
	    cin >> a[i];
	}
	int ans = -1e18;
	int minn = 1e18;
	for(int i = 1 ; i <= n ; i ++){
	    ans = max(ans , a[i] - minn);
            minn = min(minn , a[i]);
        }
	cout << ans;
	return 0;
} 

1.ans和minn一定要开大点 2.ans和minn的语句不能调换,要先取最小值再改变minn的值 ps:用双指针(自己认为)时间复杂度为O(n)

卑微地求关注(^_^)

2025/7/23 16:18
加载中...