AcWing 482. 合唱队形
原题链接
中等
作者:
Acvv_scl
,
2021-04-03 23:12:03
,
所有人可见
,
阅读 240
import java.util.*;
public class Main{
static int N=110;
//原数组
static int []a=new int [N];
//从右往左的递增子序列
static int []g=new int [N];
//从左往右的递增子序列
static int []f=new int [N];
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int i=1;i<=n;i++){
a[i]=sc.nextInt();
f[i]=1;
g[i]=1;
}
for(int i=1;i<=n;i++){
for(int j=1;j<i;j++)
if(a[i]>a[j])f[i]=Math.max(f[i],f[j]+1);
}
for(int i=n;i>=1;i--){
for(int j=n;j>i;j--){
if(a[i]>a[j])g[i]=Math.max(g[i],g[j]+1);
}
}
int res=0;
//求和 记得有重复 需要-1
for(int i=1;i<=n;i++){
res=Math.max(res,g[i]+f[i]-1);
}
System.out.println(n-res);
}
}