AcWing 1055. 股票买卖 II
原题链接
简单
作者:
静静在Coding
,
2022-02-22 17:14:59
,
所有人可见
,
阅读 131
ACWing 1055
状态机 + 滚动数组
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100010;
int f[2][2];
int main()
{
int n,w;
cin>>n;
f[0][1] = -0x3f3f3f3f;
for(int i = 1;i <= n;i++){
cin>>w;
f[i&1][0] = max(f[i-1&1][0],f[i-1&1][1] + w);
f[i&1][1] = max(f[i-1&1][1],f[i-1&1][0] - w);
}
cout<<max(f[n&1][0],f[n&1][1])<<endl;
return 0;
}
贪心
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100010;
int w[N];
int main()
{
int n;
cin>>n;
for(int i = 1;i <= n;i++) scanf("%d",&w[i]);
int res = 0;
for(int i = 2;i <= n;i++){
if(w[i] > w[i - 1]){
res += w[i] - w[i - 1];
}
}
cout<<res<<endl;
return 0;
}