题解 | 合唱队
合唱队
https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4
#include <iostream>
using namespace std;
int f[3005],g[3005];
int main() {
int n;
cin>>n;
int h[n];
for(int i=1;i<=n;++i){
cin>>h[i];
}
for(int i=1;i<=n;++i){
f[i]=1;
for(int j=1;j<i;++j){
if(h[i]>h[j]){
f[i]=max(f[i],f[j]+1);
}
}
}
for(int i=n;i>=1;--i){
g[i]=1;
for(int j=i+1;j<=n;++j){
if(h[i]>h[j]){
g[i]=max(g[i],g[j]+1);
}
}
}
int res=0;
for(int i=1;i<=n;++i){
res=max(res,f[i]+g[i]-1);
}
cout<<n-res<<endl;
}
// 64 位输出请用 printf("%lld")

