华为OD机试真题 --- 最小的调整次数

2023-11-08

例如输入:

3
head add 1
remove
tail add 2
head add 3
remove
remove

输出: 
1
说明:

 解题思路:使用双向的队列近行存储,利于排序,从头插入,从尾插入


java 参考代码如下:

    Scanner in = new Scanner(System.in);
// 最小的调整次数
while (in.hasNextInt()) {
    LinkedList<Integer> list = new LinkedList<>();
    int n = in.nextInt();
    // 回车
    in.nextLine();
    int operations = 2 * n;
    LinkedList<String> operationList = new LinkedList<>();
    for (int i = 0; i < operations; i++) {
        String str = in.nextLine();
        operationList.add(str);
    }

    int index = 1;
    int count = 0;
    for (var operation : operationList) {
        String[] strs = operation.split(" ");
        if (strs.length == 1) {
            if (list.get(0) != index) {
                Collections.sort(list);;
                count++;
            }
            list.removeFirst();
            index ++;
        } else {
            if (strs[0].equals("head")) {
                list.addFirst(Integer.valueOf(strs[2]));
            } else {
                list.addLast(Integer.valueOf(strs[2]));
            }
        }
    }
    System.out.println(count);
}

 至于细节方面,可以再优化一下,但是主要解题思路就是上面代码所示

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为OD机试真题 --- 最小的调整次数 的相关文章

  • WeBASE-Front中间件搭建

    WeBASE Front中间件搭建 简介 WeBASE WeBank Blockchain Application Software Extension 是在区块链应用和FISCO BCOS节点之间搭建的一套通用组件 围绕交易 合约 密钥管

随机推荐

  • vector和list有什么区别?分别在什么场景下应用?

    Vector 顺序表 优点 和数组类似开辟一段连续的空间 并且支持随机访问 所以它的查找效率高其时间复杂度O 1 缺点 由于开辟一段连续的空间 所以插入删除会需要对数据进行移动比较麻烦 时间复杂度O n 另外当空间不足时还需要进行扩容 Li
  • 基础路由概念及配置

    前言 一 路由的概念 1 路由的分类 2 路由表的作用 二 中小型企业路由规划 1 静态路由规划介绍 2 静态路由规划 3 默认路由规划 4 浮动路由规划 总结 前言 路由就是源主机到目标主机的转发过程 一 路由的概念 1 路由的分类 1
  • 误删除oracle datafile,无法打开数据库

    1 在oracle open方式下 直接从OS上删除了datafile文件 rm u02 rmants dbf 2 数据库关闭后 无法打开数据库 只能到mount状态 SQL gt alter database open alter dat
  • 批量操作关联事务没有滚机制怎么办?交给递归就好了!

    最近遇到一个问题 需要批量修改Nginx配置文件 并分别执行Reload操作 文件更新和reload是lua脚本完成的功能 java后台可以直接调动接口 但问题是需要批量update并分别reload 而且没有事务控制 也就是说在更新第十条
  • jmeter-常用的几种参数化

    jmeter常见的几种参数化方式 jmeter 的csv 数据文件设置 线程组 gt 配置元件 gt Csv数据文件配置 Filename 文件名 File encoding 编码格式 variable Names 参数名称 后面可以使用v
  • C++.将十个整数从小到大顺序排序(冒泡排序法+反向冒泡排序)

    先说一下冒泡排序法的思路 若n个整数则需要进行n 1轮 每轮 将两个相邻元素进行对比 若左大于右则交换 第一轮需要比较n 1次 第二轮n 2次 每轮结束后 最大的元素就会去到最右边 第二轮倒数第二大就会去到最右边 所以 见代码 int ma
  • RIP笔记

    目录 RIP路由信息协议 UDP520端口 RIPNG521端口 RIP使用的算法 贝尔曼 福特算法 RIP的版本 RIP的数据包 RIP的工作过程 RIP的计时器 周期更新计时器 默认30s 失效计时器 默认180s 垃圾回收计时器 默认
  • 【深度学习与计算机视觉】4、反向传播及其直观理解

    四 反向传播及其直观理解 4 1 引言 问题描述和动机 大家都知道 其实我们就是在给定的图像像素向量x和对应的函数 f x f x f x 然后我们希望能够计算
  • 使用决策树对数据进行分类——识别橘子苹果

    代码如下 encoding utf 8 from sklearn import tree 1表示光滑 0表示粗糙 features 140 1 130 1 150 0 170 0 0表示苹果 1表示橘子 labels 0 0 1 1 创建一
  • 手把手教你在win10搭建linux虚拟机

    由于企业几乎都用linux作为生产环境 linux逐渐成为了工程师的必学知识 本文将带你如何在安装 虚拟机 在虚拟机中安装centOS linux的一个发行版 以及如何在 linux安装docker 并使用docker安装mysql red
  • Playing with ptrace, Part II

    Playing with ptrace Part II From Issue 104 December 2002 Dec 01 2002 By Pradeep Padala in SysAdmin In Part II of his ser
  • Hyperledger Fabric官方文档——Introduction

    研究生一直在折腾区块链这方面的东西 翻来覆去感觉Hyperledger Fabric是个挺有前景的 怎么说呢 方向吧 自己脑子里想的东西全让它实现了 又觉得难过又觉得开心 超级账本值得学习的地方有很多 又打算把官方文档翻出来读一遍 因为英语
  • fastjson 很好,但不适合我!

    Java指南 https java family cn FastJson 在国内的热度还是挺高的 受到了很多开发者的喜欢 不过 我自己倒没有在项目中用过 我记得刚工作那会新做的一个项目有明确规定禁止使用 FastJson 昨天看到一篇关于
  • 一个执行计划异常变更的案例 - 外传之SQL Profile(下)

    之前的几篇文章 一个执行计划异常变更的案例 前传 一个执行计划异常变更的案例 外传之绑定变量窥探 一个执行计划异常变更的案例 外传之查看绑定变量值的几种方法 一个执行计划异常变更的案例 外传之rolling invalidation 一个执
  • HTML页面写入OBS

  • 多个消费者订阅一个Kafka的Topic(使用@KafkaListener和KafkaTemplate)

    记录 465 场景 一个Producer在一个Topic发布消息 多个消费者Consumer订阅Kafka的Topic 每个Consumer指定一个特定的ConsumerGroup 达到一条消息被多个不同的ConsumerGroup消费 版
  • VAN LKA、LSKA

    Visual Attention Network 2022 大核注意力机制LKA 在本文中 提出了一种新的大核注意力large kernal attention LKA 模型 LKA吸收了卷积和自注意的优点 包括局部结构信息 长程依赖性和适
  • leetcode分类刷题:基于数组的双指针(一、基于元素移除的O(1)类型)

    1 对于数组上的双指针问题 主要是指两个变量在数组上移动或遍历的问题 之前整理的 二分查找 系列的算法题目 就是双指针解决数组上的索引相向移动 2 双指针算法的关键在于 初始化双指针值和双指针值分别更新的条件 保持对以上两点的清晰认知 就能
  • 一文打尽OpenWrt系统内核设置(/etc/sysctl.conf)、非UCI系统配置(/etc/rc.local、/etc/profile等)

    一 前言 系统内核设置 OpenWrt也是一个 Linux 操作系统 因此它和桌面操作系统 Ubuntu及Fedora 一样 采用sysctl作为系统的内核配置工具 sysctl conf作为其内核配置文件在启动时进行加载 非UCI系统配置
  • 华为OD机试真题 --- 最小的调整次数

    例如输入 3 head add 1 remove tail add 2 head add 3 remove remove 输出 1 说明 解题思路 使用双向的队列近行存储 利于排序 从头插入 从尾插入 java 参考代码如下 Scanner