当前位置: 首页 > news >正文

网站建设报价单模板下载怎么做宣传推广

网站建设报价单模板下载,怎么做宣传推广,哪里有做网站公司,企业网站关键词优化排名应该怎么做最小调整顺序次数、特异性双端队列 题目描述 有一个特异性的双端队列,该队列可以从头部或尾部添加数据,但是只能从头部移出数据。 小A依次执行2n个指令往队列中添加数据和移出数据。其中n个指令是添加数据(可能从头部添加、也可能从尾部添加…

最小调整顺序次数、特异性双端队列

题目描述

有一个特异性的双端队列,该队列可以从头部或尾部添加数据,但是只能从头部移出数据。
小A依次执行2n个指令往队列中添加数据和移出数据。其中n个指令是添加数据(可能从头部添加、也可能从尾部添加),依次添加1到n;n个指令是移出数据。
现在要求移除数据的顺序为1到n。
为了满足最后输出的要求,小A可以在任何时候调整队列中数据的顺序。
请问 小A 最少需要调整几次才能够满足移除数据的顺序正好是1到n;

输入描述

第一行一个数据n,表示数据的范围。
接下来的2n行,其中有n行为添加数据,指令为:

  • "head add x" 表示从头部添加数据 x,
  • "tail add x" 表示从尾部添加数据x,
另外 n 行为移出数据指令,指令为:"remove" 的形式,表示移出1个数据;

1 ≤ n ≤ 3 * 10^5。
所有的数据均合法。

输出描述

一个整数,表示 小A 要调整的最小次数。

源码和解析
解析:

其实这个题只要理解了就其实还蛮简单的。小编当时做这个提题目时候前面一脸懵B,压根不知道在说个啥。就只知道要调整次数,但是不确定这个调整次数是啥。
head add 1
[1]
tail add 2
[1, 2]
remove
[2]
head add 3
[3, 2]
tail add 4
[3, 2, 4]
head add 5
[5, 3, 2, 4]
remove
排序了
[3, 4, 5]
remove
[4, 5]
remove
[5]
remove
[]
这个是用例中的例子 输出过程。 认真去体会每个指令执行后的结果
若输入变成
5
head add 2
tail add 1
remove
head add 3
tail add 4
head add 5
remove
remove
remove
remove
排序了1次
那么其输出过程为:
head add 2
[2]
tail add 1
[2, 1]
remove
排序了
[2]
head add 3
[3, 2]
tail add 4
[3, 2, 4]
head add 5
[5, 3, 2, 4]
remove
排序了
[3, 4, 5]
remove
[4, 5]
remove
[5]
remove
[]
排序了2次
====》可以推出 ,当集合中首位值不是集合中最小值是,需要进行调整。而一次调整包含了多次交换位置过程。可以简单的理解为1次排序过程。

示例代码:

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;public class T33 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String input = scanner.nextLine();int num = Integer.parseInt(input); // 数据范围 并非是数的个数List<Integer> numList = new ArrayList<Integer>();int count = 0;// 调整次数int removeNum = 1;// 下一次需要移走哪一个for (int i = 0; i < num * 2; i++) {input = scanner.nextLine();String strArr[] = input.split(" ");System.out.println(input);if (strArr[0].equals("remove")) {// remove 从头部移出数据if (numList.get(0) == removeNum) {numList.remove(0);removeNum++;} else {count++;// 调整次序 从小到大排序一下numList.sort(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {if (o1 > o2)return 1;if (o1 < o2)return -1;return 0;}});System.out.println("排序了");numList.remove(0);removeNum++;}}// 头部添加if (strArr[0].equals("head")) {numList.add(0, Integer.parseInt(strArr[2]));// continue;} else if (strArr[0].equals("tail")) {// 尾部添加numList.add(Integer.parseInt(strArr[2]));}System.out.println(numList);}System.out.println(count);}
}
http://www.yayakq.cn/news/79765/

相关文章:

  • 韩国美食网站建设目的网站制作公司珠海
  • php网站制作费用o2o商城网站搭建
  • 网站数据库建设方案广东深圳最新消息今天
  • 三亚网站建设价格高新快速建设网站找哪家
  • 湛江做网站seo淘宝网站开发源码
  • 自己做网站需要学什么软件下载Sage WordPress商城主题
  • 免费制作一个自己的网站查询网站这么做
  • 游戏网站搭建需要多少钱wordpress ftp插件
  • 西宁整站优化河南工程建筑信息网
  • wap网站开发价格seo建站优化价格表
  • 狼们求个没封的免费网站科技助手和平精英
  • 广东在线网站建设凡客软件下载
  • 51zwd一起做网站双公示网站专栏建设
  • 西安免费自助建站模板网页界面设计调查问卷
  • 青岛在线制作网站新冠政策最新20条
  • 在百度做推广需要网站吗购买服务器做网站
  • 塔城北京网站建设wordpress标签的调用
  • 建湖网站建设价格韩国化妆品网站模板
  • 建设网站哪家最好百度推广获客方法
  • 网站还未被收录可以做推广吗怎样创网站
  • 建设网站都需要准备什么可信网站认证图标
  • 达州科创网站建设公司重庆网站制作
  • cocos2d-js可以做网站吗三亚手机台app
  • 会务网站建设wordpress 瀑布流
  • wordpress怎么建设网站wordpress添加侧边栏分享按钮
  • 家具行业网站整站模板aws wordpress 站群
  • dw做网站的导航栏wordpress模板调试
  • 网站如何做邮箱订阅wordpress获取主题路径
  • 叮当网站做app网站备案icp备案
  • 建站行业获客小企业网站建设费用一年