合唱队

来源:互联网 发布:如何在淘宝开充值店 编辑:程序博客网 时间:2024/05/11 04:15
import java.util.Arrays;import java.util.Scanner;public class HeChang {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String num = scan.nextLine();int n = Integer.valueOf(num);String str = scan.nextLine();String[] ss =str.split(" ");int len = ss.length;int[] a = new int[ss.length];for(int i=0;i<ss.length;i++){a[i] = Integer.valueOf(ss[i]);}//从左向右int[] f1 = new int[len];//从右向左int[] f2  = new int[len];for(int i=0;i<n;i++)//由左向右依次遍历 {//f1[i] = 1;//至少有一个人符合条件,就是他自己。所以赋初值1.for(int j=0;j<i;j++){if(a[i]>a[j]&&f1[i]<f1[j]+1) //f1[i]<f1[j]+1很关键的条件,动态问题f1[i]= f1[j]+1;} }for(int i=n-1;i>=0;i--)//由右向左依次遍历{f2[i] = 1;//至少有一个人符合条件,就是他自己。所以赋初值1.for (int j=n-1;j>i;j--){if(a[i]>a[j]&&f2[i]<f2[j]+1) f2[i]=f2[j]+1;}}int ans = 0;for(int i=0;i<n;i++)if(ans<f1[i]+f2[i]) ans=f1[i]+f2[i];//最佳解    System.out.println(n-ans);}}

0 0