描述

计算最少出列多少位同学,使得剩下的同学排成合唱队形

说明:

N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 
合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,   则他们的身高满足存在i(1<=i<=K)使得Ti<T2<......<Ti-1<Ti>Ti+1>......>TK。 
     你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

知识点 循环
运行时间限制 0M
内存限制 0
输入

整数N

一行整数,空格隔开,N位同学身高

输出

最少需要几位同学出列

样例输入 8 186 186 150 200 160 130 197 200
样例输出 4

A了半天都没A出来,还看了很多人的

-------------------------------------------------------我是代码分割线-----------------------------------------

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n;
n = scanner.nextInt();
int height[] = new int[n];
//input height
for(int i = 0; i < n; i++){
height[i] = scanner.nextInt();
}//for int result = getResult(height);
System.out.println(result); scanner.close();
} private static int getResult(int array[]){
int maxLengthArray[] = new int[array.length];
for(int i = 0; i < maxLengthArray.length; i++)
maxLengthArray[i] = 1;
//update increase
for(int i = 1; i < array.length; i++){
for(int j = 0; j < i; j++){
if(array[i] > array[j] && maxLengthArray[i] < maxLengthArray[j] + 1)
maxLengthArray[i] = maxLengthArray[j] + 1;
}
}//for int minLengthArray[] = new int[array.length];
for(int i = 0; i < minLengthArray.length; i++)
minLengthArray[i] = 1;
//update decrease
for(int i = array.length - 2; i >= 0; i--){
for(int j = array.length - 1; j > i; j--){
if(array[i] > array[j] && minLengthArray[i] < minLengthArray[j] + 1)
minLengthArray[i] = minLengthArray[j] + 1;
}
}//for //find max
int maxLength = 0;
for(int i = 0; i < maxLengthArray.length; i++)
maxLength = maxLength > (maxLengthArray[i] + minLengthArray[i] - 1)? maxLength : (maxLengthArray[i] + minLengthArray[i] - 1); return array.length - maxLength;
} }

从头到尾DP,从尾到头DP

合唱队(华为OJ)的更多相关文章

  1. 华为OJ:火车进站

    火车进站 给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号.要求以字典序排序输出火车出站的序列号. 输入描述: 有多组测试用例, ...

  2. 在华为oj的两个月

    一次偶然的机会,我接触到华为oj平台(http://career-oj.huawei.com/exam/camLogin.jsp),当时的心情很是兴奋,于是立马注册开通,然后迫不及待地上去做题.刚开始 ...

  3. 华为oj 刷题记录之合唱团

    华为OJ-合唱队 描述 计算最少出列多少位同学,使得剩下的同学排成合唱队形 说明: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队 ...

  4. 华为OJ题目:刷题

    题目描述: 新入职华为的小伙伴们都有在oj上面刷题的任务,共需要刷100道初级题,45道中级题,5道高级题,其中,做出来的高级题如果超标可以当初级或者中级题,做出来的中级题如果超标可以当初级题.每天, ...

  5. 华为OJ平台——字符串分隔

    题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输 ...

  6. 华为OJ平台——输出最小的k个数

    输入n个整数,输出其中最小的k个. 详细描述: 接口说明 原型: bool GetMinK(unsignedint uiInputNum, int *pInputArray, unsignedint ...

  7. 华为OJ平台——矩阵乘法

    题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 输入: 1.第一个矩阵的行数 2.第一个矩阵的列数(也是第二个矩阵的行数) 3.第二个矩阵 ...

  8. 华为OJ机试训练(一)

    题目1 -- 通过输入英文句子.将每一个单词反过来,标点符号顺序不变.非26个字母且非标点符号的情况就可以标识单词结束. 标点符号包含,.!? 比如输入:Hello, I need an apple. ...

  9. 矩阵乘法的运算量计算(华为OJ)

    题目地址: https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b?tpId=37&&tqId=21293 ...

随机推荐

  1. 【OD深入学习】Java多线程面试题

    一.参考文章 1. Java线程面试题 Top 50 2. Java面试——多线程面试题 3. JAVA多线程和并发基础面试问答 4. 15个顶级Java多线程面试题及回答 二.逐个解答 三.一语中的 ...

  2. P3554 [POI2013]LUK-Triumphal arch

    \(\color{#0066ff}{ 题目描述 }\) 给一颗树,1号节点已经被染黑,其余是白的,两个人轮流操作,一开始B在1号节点,A选择k个点染黑,然后B走一步,如果B能走到A没染的节点则B胜,否 ...

  3. IdentityServer4 学习笔记[2]-用户名密码验证

    回顾 上一篇介绍了IdentityServer4客户端授权的方式,今天来看看IdentityServer4的基于密码验证的方式,与客户端验证相比,主要是配置文件调整一下,让我们来看一下 配置修改 pu ...

  4. springcloud系列11 整合微服务网关zuul

    这个模块是一个独立的模块所以需要建立一个模块, 首先引入: 依赖pom.xml <?xml version="1.0" encoding="UTF-8"? ...

  5. vue四、实例

    1.new Vue创建根实例 2.data对象,所有的属性加入到 Vue 响应式系统-值发生改变时,视图自动变更为新值 只有实例被创建时存在的属性才会响应式改变,后增加的不会 vue定义的实例属性和方 ...

  6. Kibana6.x.x源码开发——执行 yarn start --no-base-path 启动命令后报错

    错误信息如下: Unhandled rejection Error: Request Timeout after 30000ms at /home/kibana_git/kibana6.2.2/nod ...

  7. 2015苏州大学ACM-ICPC集训队选拔赛(1) 1005

    发现 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission ...

  8. nginx编译报错

    [root@vm_0_2_centos nginx-1.12.2]# ./configure --prefix=/application/nginx-1.12.2 --user=www --group ...

  9. asp.net搭建项目架构

    项目的架构决定这个项目的好坏. 今天我说说传统三层架构的搭建 第一步 创建一个解决方案 例如 TaskSystem 接着这个解决方案下创建六个项目分别: TaskSystem.DAL TaskSyst ...

  10. 1.搭建JavaEE开发环境

    1.Web应用介绍: 2.Servlet简介 3.JSP简介 4.Servlet容器 Web服务器有静态资源和动态页面,静态资源是*.html(文件系统),动态页面是Servlet容器. 5.Tomc ...