华为OD机试 - 特异性双端队列(Java 2023 B卷 100分)

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、Java算法源码
    • 五、效果展示
      • 1、输入
      • 2、输出

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

一、题目描述

给定一个队列,但是这个队列比较特殊,可以从头部添加数据,也可以从尾部添加数据,但是只能从头部删除数据。

输入一个数字n,会依次添加数字1~n(也就是添加n次)。

但是在添加数据的过程中,也会删除数据,要求删除必须按照1~n按照顺序进行删除,所以在删除时,可以根据需要调整队列中数字的顺序以满足删除条件。

二、输入描述

第一行一个数据N,表示数据的范围。

接下来的2N行是添加和删除语句。

其中:

  1. head add x 表示从头部添加元素 x;
  2. tail add 表示从尾部添加元素;
  3. remove表示删除元素。

三、输出描述

输出一个数字,表示最小的调整顺序次数。

四、Java算法源码

package com.guor.od;import java.util.*;public class OdTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 数据的范围int n = Integer.parseInt(sc.nextLine());// 接下来的2N行是添加和删除语句String[] arr = new String[n * 2];for (int i = 0; i < arr.length; ++i) {arr[i] = sc.nextLine();}/*** 1. head add x 表示从头部添加元素 x;* 2. tail add 表示从尾部添加元素;* 3. remove表示删除元素。*/int count = 0;int input = 0;int output = 0;LinkedList<Integer> linkedList = new LinkedList<>();for (String command : arr) {String com = command.split(" ")[0];switch (com) {case "head":// 表示从头部添加元素 x;linkedList.addFirst(++input);break;case "tail":// 表示从尾部添加元素;linkedList.addLast(++input);break;default:// 表示删除元素。if (!linkedList.getFirst().equals(++output)) {count++;linkedList.sort(Integer::compareTo);}linkedList.removeFirst();break;}}System.out.print(count);}
}

五、效果展示

1、输入

4
head add nezha
remove
tail add study
head add java
remove
remove
head add nezha
head add java

2、输出

1

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

Vue-cli搭建SPA项目

前言 Vue CLI&#xff08;Vue Command Line Interface&#xff09;是一个用于快速搭建基于Vue.js的前端项目的工具。它是Vue.js官方提供的一个脚手架工具&#xff0c;旨在简化Vue.js项目的开发过程。Vue CLI提供了一些强大的功能&#xff0c;帮助开发者轻松创建、开发和构建Vu…

Verilog:$readmemb和$readmemh系统函数的使用与其中的初始化地址相关问题(详细细节)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 $readmemb和$readmemh两个系统函数用于将文件中的数据加载到存储器或者被称为数组的memory中。首先给出他们的语法的BNF范式&#xff0c;有关BNF范式的内容可以在…

Merge之后,还没有Push,如何回滚

Merge之后&#xff0c;还没有Push&#xff0c;如何回滚 Merge之后&#xff0c;还没有Push&#xff0c;如何回滚 1&#xff1a;代码操作&#xff1a; 1&#xff1a;git log 查看git执行历史记录 GIT所有的执行记录会以倒叙呈现&#xff1b;最上面的就是需要回滚的merge序列号&a…

爬虫 — Scrapy 框架(一)

目录 一、介绍1、同步与异步2、阻塞与非阻塞 二、工作流程三、项目结构1、安装2、项目文件夹2.1、方式一2.2、方式二 3、创建项目4、项目文件组成4.1、piders/__ init __.py4.2、spiders/demo.py4.3、__ init __.py4.4、items.py4.5、middlewares.py4.6、pipelines.py4.7、sett…

芯科蓝牙BG27开发笔记9-蓝牙温控器例程阅读

源码&#xff1a; https://download.csdn.net/download/hxkrrzq/88353283 以上源码都是官方资源&#xff0c;可以自行gitbub下载&#xff08;参见之前笔记&#xff09; 蓝牙广播格式化 之前的笔记中广播数据是直接使用的十六进制字符串&#xff0c;关于这32bytes数据的格式化…

【Linux】系统编程线程互斥与同步(C++)

目录 【1】线程互斥 【1.1】进程线程间的互斥相关背景概念 【1.2】互斥量mutex 【1.3】互斥量实现原理探究 【1.4】RAII的加锁风格 【2】可重入VS线程安全 【2.1】概念 【2.2】常见的线程不安全的情况 【2.3】常见的线程安全的情况 【2.4】常见不可重入的情况 【2.5…

Linux之ASCII码表查询tools(五十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

基于复旦微的FMQL45T900全国产化ARM核心模块(100%国产化)

TES745D是一款基于上海复旦微电子FMQL45T900的全国产化ARM核心板。该核心板将复旦微的FMQL45T900&#xff08;与XILINX的XC7Z045-2FFG900I兼容&#xff09;的最小系统集成在了一个87*117mm的核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&#xff0c;能…

Flask框架-2-[单聊]: flask-socketio实现websocket的功能,实现单对单聊天,flask实现单聊功能

一、概述和项目结构 在使用flask-socketio实现单聊时&#xff0c;需要将会话id(sid) 与用户进行绑定&#xff0c;通过emit(事件,消息,tosid) ,就可以把消息单独发送给某个用户了。 flask_websocket |--static |--js |--jquery-3.7.0.min.js |--socket.io_4.3.1.js |--template…

实验五 熟悉 Hive 的基本操作

实验环境&#xff1a; 1.操作系统&#xff1a;CentOS 7。 2.Hadoop 版本&#xff1a;3.3.0。 3.Hive 版本&#xff1a;3.1.2。 4.JDK 版本&#xff1a;1.8。 实验内容与完成情况&#xff1a; &#xff08;1&#xff09;创建一个内部表 stocks&#xff0c;字段分隔符为英文逗号…

Linux 中的make/makefile

一&#xff1a;背景 make是一个命令工具&#xff0c;是一个解释makefifile中指令的命令工具&#xff0c;一般来说&#xff0c;大多数的IDE都有这个命令&#xff0c;比如&#xff1a;Delphi的make&#xff0c;Visual C的nmake&#xff0c;Linux下GNU的make。可见&#xff0c;mak…

《Python等级考试(1~6级)历届真题解析》专栏总目录

❤️ 专栏名称&#xff1a;《Python等级考试&#xff08;1~6级&#xff09;历届真题解析》 &#x1f338; 专栏介绍&#xff1a;中国电子学会《全国青少年软件编程等级考试》Python编程&#xff08;1~6级&#xff09;历届真题解析。 &#x1f680; 订阅专栏&#xff1a;订阅后可…