牛客--合唱队

题目描述

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

说明:

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

请注意处理多组输入输出!

 

输入描述:

 

整数N

输出描述:

 

最少需要几位同学出列

示例1

输入

复制

8
186 186 150 200 160 130 197 200

输出

复制

4

思路:求递增子序列

把每个位置都先看作中心点

先求出每个位置左边和右边比他小的子序列

之后找出左右子序列之和最大的中心节点即可,这就是最终的队列,用总数减去这个队列的数量。

例如:186是第一个,左边没有值,他的左子序列长度为1。第二个186,左边和他的值一样,所以左边没有比他小的,他的左子序列也是1。150左边没有比他小的,他的左子序列也是1。200左边可以是150或者186,所以他的左子序列是2。

代码:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
        int nums[] = new int[n];
        int left[] = new int[n];
        int right[] = new int[n];
        for(int i=0;i<n;i++){
            nums[i] = sc.nextInt();
            left[i] = 1;
            right[i] = 1;
        }
        for(int i=1;i<n;i++){
            int max = 0;
            for(int j=i-1;j>=0;j--){
                if(nums[i]>nums[j])
                max = Math.max(max,left[j]);
            }
            left[i]+=max;
        }
        for(int i=n-2;i>=0;i--){
            int max = 0;
            for(int j=i+1;j<n;j++){
                if(nums[i]>nums[j])
                max = Math.max(max,right[j]);
            }
            right[i]+=max;
        }
        int max = 1;
        for(int i=0;i<n;i++){
            max = Math.max(max,left[i]+right[i]);
        }
        System.out.println(n-max+1);
        }
        
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java连接hbase时出现....is accessible from more than one module:

今天在用java程序连接hbase时&#xff0c;出现错误&#xff0c;The package org.apache.hadoop.hbase is accessible from more than one module: &#xff0c;在网上百度也没能找出答案&#xff0c;但是经过很长时间的查找之后中遇找到了原因&#xff0c;那就是我自导入jar包时…

AR行业发展现状:定义、技术原理及商业价值

文章来源&#xff1a;AR工业应用资料源自网络《Pokemon Go》这款游戏能够大火&#xff0c;除了一个好的IP之外。AR技术也功不可没。而在AR发光之后&#xff0c;什么是AR&#xff1f;它的技术原理是怎么样的&#xff0c;它能够具备哪些商业价值&#xff1f;希望通过这篇文章&…

基础学科如何不再“又难又穷”

来源&#xff1a;光明日报投身基础学科意味着什么——“奉献”“冷板凳”“异常艰苦”……也许&#xff0c;这是横亘在数十年间&#xff0c;大学生选报志愿时对“基础学科”的“刻板印象”。在知乎、豆瓣等大学生汇集的社交网站上&#xff0c;谈到基础学科&#xff0c;一位叫刘…

配置 Docker 加速器

Linux curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io 该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、op…

Leetcode--72.编辑距离(java)

给你两个单词 word1 和 word2&#xff0c;请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符 删除一个字符 替换一个字符 示例 1&#xff1a; 输入&#xff1a;word1 "horse", word2 "…

2021年阿贝尔奖公布!理论计算机科学和离散数学领域学者获奖

来源&#xff1a;前瞻网3月17日&#xff0c;2021年阿贝尔奖揭晓。挪威科学和文学院决定将2021年阿贝尔奖授予来自匈牙利&#xff0c;布达佩斯罗兰大学的Lszl Lovsz 和来自美国&#xff0c;普林斯顿高等研究院的 Avi Wigderson&#xff0c;以表彰两位科学家在理论计算机科学和离…

path环境变量丢失恢复

path环境变量不小心丢失&#xff0c;查询到的恢复方法记录一下 WindowsR键&#xff0c;打开&#xff1a;regedit后点击确定按钮 依次按照这个步骤找到path&#xff0c;鼠标右键修改&#xff0c;复制值到path环境变量中就可以了 转载于:https://www.cnblogs.com/liangcl/p/96797…

【剑指offer】面试题07. 重建二叉树(Java)

输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如&#xff0c;给出 前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树&#xff1a; 3 / \ 9 20 …

GPU深度报告,三大巨头,十四个国内玩家一文看懂【物联网智商精选】

来源: 智东西编辑&#xff1a;智东西内参关于GPU&#xff0c;你想知道的都在这里了。GPU是Graphics Processing Unit&#xff08;图形处理器&#xff09;的简称&#xff0c;它是一种专门在个人电脑、工作站、游戏机和一些移动设备&#xff08;如平板电脑、智能手机等&#xff0…

如何阻止button默认的刷新页面操作

当button在form表单时&#xff0c;点击button会自动触发button的默认事件&#xff0c;也就是刷新当前页面。那么如何阻止呢&#xff1a; 有两种方式&#xff1a; 一&#xff1a;将<button></button>改为<input type"button"> 或者直接在<butto…

MYSQL--一条SQL查询语句是如何执行的?

select * from user where id10 当输入这条查询语句之后会发生什么&#xff1f; MYSQL逻辑架构图 MYSQL大致可以分为两大部分&#xff1a;Server层和存储引擎层 下面来介绍各层中各部分的作用&#xff1a; 连接器&#xff1a; 客户端请求建立连接&#xff0c;在完成TCP连接…

人工智能功能级别与框架|《远望译品》

来源&#xff1a;远望智库预见未来人工智能功能级别与框架本文摘自《人工智能算法、作战环境及未来趋势预判》&#xff5c;《远望译品》1、人工智能功能级别人工智能不仅在知识域中运行&#xff0c;而且在不同级别上与其他理性个体及其问题空间相互作用。人们对人工智能的期望过…

指针和数组替换和区别

指针和数组替换和区别 指针和数组在很多方面都可以替换 为什么不直接用while(*str ! \0)涉及到了Lvalue和Rvalue的问题 // http://www.dotcpp.com/wp/692.html 例如有字符数组char a[100];当a做右值时候&#xff0c;我们可以把它赋给char *类型的指针&#xff0c;用来指向这个…

Leetcode--面试题 01.07. 旋转矩阵(Java)

给你一幅由 N N 矩阵表示的图像&#xff0c;其中每个像素的大小为 4 字节。请你设计一种算法&#xff0c;将图像旋转 90 度。 不占用额外内存空间能否做到&#xff1f; 示例 1: 给定 matrix [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵&#xff0c;使其变为:…

C盘扩展卷是灰色的扩容方法

当想要扩容C盘的时候可能会发现C盘的扩展卷竟然是灰色的。原因是C盘旁边没有紧挨着的“”未分配空间“”&#xff0c; 只要将D盘的空间分出一些来就可以了。 &#xff01;&#xff01;&#xff01;磁盘的分区合并有风险&#xff0c;重要文件等记得先备份 &#xff01;&#xf…

数据与分析领域的十大技术趋势

来源&#xff1a;人工智能与大数据近日&#xff0c;Gartner发布了数据与分析领域的十大技术趋势&#xff0c;为数据和分析领导者的新冠疫情&#xff08;COVID-19&#xff09;响应和恢复工作提供指导&#xff0c;并为疫情后的重启做好准备。数据和分析领导者如果希望在疫情后能持…

到达一个数 Reach a Number

2018-09-24 14:19:58 问题描述&#xff1a; 问题求解&#xff1a; 初看到这个问题&#xff0c;直觉上认为可以通过BFS遍历解空间进行求解&#xff0c;因为本质上来说&#xff0c;这个问题和棋盘上移动马的问题是一类问题&#xff0c;都是可以转化成图的问题&#xff0c;但是MLE…

MYSQL--一条SQL更新语句是如何执行的?

输入一条更新语句&#xff0c;例如&#xff1a;update user set cc1 where ID1 具体执行流程与查询语句类似&#xff0c;详情请点击&#xff1a;https://mp.csdn.net/console/editor/html/105358656 流程走到执行器时&#xff0c;涉及两个重要的日志模块&#xff0c;redo l…

解决AI大难题:如何降低AI运行对能源的消耗?

来源&#xff1a;The Next Web作者&#xff1a;Jeannie Finks编译&#xff1a;科技行者就当下来看&#xff0c;AI领域实现突破性进展的深度学习模型&#xff0c;其规模越大&#xff0c;能耗和成本也随之增加。自然语言处理模型GPT-3就是个典型的例子&#xff0c;为了能够在准确…

STM32F105 PA9/OTG_FS_VBUS Issues

https://www.cnblogs.com/shangdawei/p/3264724.html F105 DFU模式下PA9引脚用来检测USB线缆&#xff0c;若电平在2.7~5v则认为插入usb设备&#xff08;检测到usb线缆条件满足&#xff09;&#xff0c;接下来按流程图执行。 转载于:https://www.cnblogs.com/prayer521/p/970349…