题目链接
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b51370c8c7486ddbc0c36b2261c092d1.png)
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
const int inf=1e9;
int ans=0,n,d[maxn];
void solve(int l,int r){
if(r-l<=1){
ans+=max(d[l],d[r]);
return;
}
int tmp=inf,idx;
for(int i=l;i<=r;i++){
if(tmp>d[i]){
tmp=d[i];
idx=i;
}
}
ans+=tmp;
for(int i=l;i<=r;i++)
d[i]-=tmp;
solve(l,idx-1);
solve(idx+1,r);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&d[i]);
solve(1,n);
printf("%d",ans);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n,d[maxn],dp[maxn];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&d[i]);
dp[0]=d[0]=0;
for(int i=1;i<=n;i++){
if(d[i]<=d[i-1]) dp[i]=dp[i-1];
else dp[i]=dp[i-1]+d[i]-d[i-1];
}
printf("%d",dp[n]);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int ans=0,n,d[maxn];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&d[i]);
d[0]=0;
for(int i=1;i<=n;i++)
if(d[i]>d[i-1])
ans+=d[i]-d[i-1];
printf("%d",ans);
return 0;
}