贪心思路,跨越多天的买入卖出赚钱交易,等价化成在这几天内连续做交易,之后推出每天都考虑做不做交易
AcWing 1055 股票买卖 II
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n;
int a[N];
int ans;
int main()
{
cin>>n;
for(int i = 1; i <= n; i ++ ) cin>>a[i];
//每一笔跨越几天的交易都可以分解成这几天连续的买入卖出
for(int i = 1; i <= n; i ++ ){
ans += max(0, a[i + 1] - a[i]); //如果这次买入下次卖出可以赚钱的话,就做这一笔交易
}
cout<<ans<<endl;
return 0;
}