题解 | #合唱队#

合唱队

http://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4

import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            int total = scan.nextInt();
            int[] arr = new int[total+1];
            for(int i = 1;i<=total;i++){
                arr[i] = scan.nextInt();
            }
            int [] l =left(arr);
            int [] r =right(arr);
            int max = 0;
            for(int i = 0;i<arr.length;i++){
                if(max < (l[i]+r[i]-1)){
                    max = l[i]+r[i]-1;
                }
            }
            System.out.println(total - max);
        }
    }
    public static int []left(int[] arr){
        int[]left = new int[arr.length];
        for(int i = 1; i < arr.length ; i++){
            left[i] = 1;
            for(int j = 1 ; j <i ; j++){
                if(arr[j] < arr[i]){
                    left[i] = Math.max(left[i],left[j]+1);
                }
            }
        }
        return left;
    }
     public static int []right(int[] arr){
        int[]right = new int[arr.length];
        for(int i = arr.length-1; i >0 ; i--){
            right[i] = 1;
            for(int j = arr.length-1 ; j >i ; j--){
                if(arr[j] < arr[i]){
                    right[i] = Math.max(right[i],right[j]+1);
                }
            }
        }
        return right;
    }
}
全部评论

相关推荐

10-25 22:20
门头沟学院 Java
代码飞升_不回私信人...:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
FFFoly:我也是,现在已经到了学长说的 能面试侃侃而谈的阶段了,但是已经没有公司给我面了
远程面试的尴尬瞬间
点赞 评论 收藏
分享
昨天 21:23
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务