【算法训练营】周测1-程序员宅基地

技术标签: 算法  leetcode  算法训练营  数据结构  

清华大学驭风计划课程链接 

学堂在线 - 精品在线课程学习平台 (xuetangx.com)

如果需要答案代码可以私聊博主

有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~

考题11-1


题目描述

有一个初始时为空的序列,你的任务是维护这个序列,需要进行的各种操作的表示与意义如下:

  • 1 k x: 在序列末尾插入 k个值都为 x 的数;
  • 2 k: 删除序列末尾的 k个数,若序列已不足 k 个数,则删除序列中全部的数。

每次操作后,求序列的众数的值。一个序列的众数定义为该数列中出现次数最多的数,若出现次数最多的数有多种,取其中数值最小的数。

输入格式

从标准输入读入数据。

输入第一行为一个正整数 q,表示操作次数。

接下来 q 行描述依次进行的操作,每行描述一个操作,每个操作的输入方式同题目描述。

输出格式

输出到标准输出。

对于每个操作,输出操作完成后序列的众数(若序列为空则输出 -1),并换行。

样例1输入

4
1 2 1
1 3 2
2 1
2 5

样例1输出

1
2
1
-1

样例1解释

第 1 次操作后,序列为 1 1,众数为 1。

第 2 次操作后,序列为 1 1 2 2 2,1 出现了 2 次,2 出现了 3 次,众数为 2。

第 3 次操作后,序列为 1 1 2 2,两种数都出现了 2 次,取较小的 1。

第 4 次操作后,序列为空,输出 -1。

样例2

见题目目录下的 2.in 与 2.ans

样例文件点此下载。

子任务

考题8-1


题目描述

实现一个双向链表,支持以下操作:

  1. split_succ(x):将 x 与 x 的后继(后一个)分离,若 x 没有后继,输出 no,否则输出 yes
  2. split_prev(x):将 x 与 x 的前驱(前一个)分离,若 x 没有前驱,输出 no,否则输出 yes
  3. link(x, y):将 x 接到 y 的前面,即 x 是 y 的前驱,y 是 x 的后继,若 x 已经有后继或者 y 已经有前驱,输出 no,否则输出 yes
  4. visit_succ(x):从 x 开始,一直按照后继访问下去,直到回到 x 或者没有后继为止,输出经过的所有节点编号
  5. visit_prev(x):从 x 开始,一直按照前驱访问下去,直到回到 x 或者没有前驱为止,输出经过的所有节点编号

以上的 x 均为节点编号,一共有 n 个节点,编号从 1 到 n。

一开始 n 个节点的前驱、后继均为空,也就是每个节点都是独立的节点。

输入格式

第一行两个正整数 n, m,接下来有 m 行,每行表示一个操作,格式见样例

输出格式

依次输出 m 行,每行代表一个操作的结果,格式见样例

样例 1 输入

4 15
split_succ 1
split_prev 2
link 1 2
visit_succ 1
link 2 3 
link 1 4
visit_succ 1
visit_succ 2
visit_prev 1
link 3 1
visit_prev 1
link 4 1
visit_succ 1
visit_succ 2
visit_succ 3

样例 1 输出

no
no
yes
1 2
yes
no
1 2 3
2 3
1
yes
1 3 2
no
1 2 3
2 3 1
3 1 2

样例 2 和 样例 3

点击下载

数据范围

对于 60% 的数据,1 ≤ n, m ≤ 100;

对于全部 100% 的数据,1 ≤ n, m ≤ 1,000。

时间限制:2 s

空间限制:512 MB

考题6-1


题意

输入

输出

每组数据输出一行,若该组数据的两个二叉树结构相同,输出 yes,否则输出 no。

样例 1 输入

2
3
1 2
-1 -1
-1 -1
2 1
-1 -1
-1 -1
3
1 -1
2 -1
-1 -1
-1 1
2 -1
-1 -1

样例 1 输出

yes
no

样例 1 解释

第一个数据是 yes,如图

解释一下第一个数据的二叉树,数据是这样的

3      // 有 3 个点
1 2    // 二叉树 a 的 0 号点左孩子为 1,右孩子为 2
-1 -1  // 二叉树 a 的 1 号点左孩子为空,右孩子为空
-1 -1  // 二叉树 a 的 2 号点左孩子为空,右孩子为空
2 1    // 二叉树 b 的 0 号点左孩子为 2,右孩子为 1
-1 -1  // 二叉树 b 的 1 号点左孩子为空,右孩子为空
-1 -1  // 二叉树 b 的 2 号点左孩子为空,右孩子为空

第二个数据是 no。

样例 2 和 样例 3

点击下载

数据范围

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chen695969/article/details/136621439

智能推荐

spring-schedule框架实现定时任务_schedule表单-程序员宅基地

文章浏览阅读7.2k次。sprig-schedule:一句话——作业调度spring-schedule Cron表达式:Cron 表达式的格式:秒(seconds) 分(minutes) 时(hours) 日(day-of-month) 月(month) 周(day-of-week) 年(year非必须)各个格式允许的值和允许的特殊字符字段名 允许的值 允许的特殊字符 秒 ..._schedule表单

int*与int*&_int &value-程序员宅基地

文章浏览阅读8k次,点赞30次,收藏97次。很多CPPers都会对指针和引用的使用感到头疼,特别是在两者混用的时候。而指针和引用一个最大的用途就是作为函数形参。以下为本人总结的一些int* 与 int*&在作为函数形参的使用中的区别1.int* value指针大家都不陌生,指针在作为函数形参时,最广泛的用途就是传入数组的首地址,进而在函数中对数组进行操作。int Calc(int *value){ //value则为数组value[]的首地址 //可以直接使用value[]操作数组}所以,用int* value作为_int &value

点云对象转成pcd文件 (python)_asc转pcd python-程序员宅基地

文章浏览阅读1w次,点赞12次,收藏74次。由于需要做点云处理,在python中处理点云对象看不见效果很难受,于是想到将点云数据转成pcd文件,使用pcl查看空间形象。我是先将点云从h5文件中读出,具体操作可以看我的另一个文章->博客直链好了,我们在python中得到了点云对象,如图所示:另起文件写一个工具类,定义一个写成pcd的方法import os#传入点云对象def points2pcd(points): #存放..._asc转pcd python

小程序社区疫情防控系统_#小程序://csdn社区/kfsdisda0bzkkbg-程序员宅基地

文章浏览阅读958次,点赞21次,收藏20次。Java目 录摘 要Abstract第一章 绪 论1.1选题背景1.2研究现状1.3研究内容第二章 开发工具及关键技术介绍2.1微信开发者工具2.2微信简介2.3小程序框架以及目录结构介绍2.4 JAVA技术2.5 Mysql数据库第三章 系统分析3.1需求分析3.2可行性分析3.2.1技术可行性:技术背景3.2.2经济可行性3.2.3操作可行性:3.3性能分析3.4系统操作流程3.4.1管理员登录流程3.4.2信息添加流程3.4.3信息删除流程第四章 系统设计与实现4.1系统架构设计。_#小程序://csdn社区/kfsdisda0bzkkbg

《计算机科学导论》学习笔记(11) - 怎样管理数据_学习《数据科学导论》的计划与方法-程序员宅基地

文章浏览阅读142次。Udacify 函数 继续学习 29%_学习《数据科学导论》的计划与方法

JavaScript:OC的眼光,不一样的数据类型和函数_js 有跟oc一样的extension类别吗-程序员宅基地

文章浏览阅读183次。前言作为一个iOS开发者,我觉得对于JavaScript入门还是并不是太困难,当然了,这只是入门而已,我们就从入门开始搞事.JavaScript的开始JavaScript作为一种轻量级的脚本语言,JavaScript是不会做类似于OC预编译的工作,我们需要把代码放入** <p id = 'label'>HelloWorld</p>然后我们在** <script > document.getElementById("label").innerH.._js 有跟oc一样的extension类别吗

随便推点

SpringBoot 自定义TaskExecutor线程池执行异步操作_springboot 定义task-程序员宅基地

文章浏览阅读463次。到此SpringBoot 自定义TaskExecutor线程池执行异步操作介绍完成。最近项目中有使用到通过自定义线程池来执行异步操作的配置,特此记录便于日后查阅。_springboot 定义task

ROS下同时存储Kinect 深度和RGB图_ros订阅kinect相机深度图和rgb-程序员宅基地

文章浏览阅读5.4k次,点赞10次,收藏73次。用深度相机构图做SLAM 常需要对一个真实的环境进行测试,需要自己使用深度相机录制数据集。通常相机的硬件商或者是网上都有深度相机在ROS下的驱动程序,使得我们可以正常的通过单个topic 看到深度图像和彩色图像,但是我们经常卡在如何使用一个ROS节点接收多个topic 的数据这个步骤,解决这个问题需要使用ROS 自带的多线程创建工具(ros::AsyncSpinner)。注:环境平台为: Ubu..._ros订阅kinect相机深度图和rgb

求素数的java代码-程序员宅基地

文章浏览阅读340次,点赞8次,收藏10次。接下来,使用一个循环从2开始,直到输入数的平方根(包括平方根)为止。在循环中,如果输入数能够被当前循环变量整除,则说明它不是素数,返回。方法是程序的入口点,它指定了要查找的最大素数(在这个例子中是100),然后通过循环遍历从2到最大素数之间的所有整数,并调用。方法接受一个整数作为参数,并返回一个布尔值,表示该数是否为素数。首先,如果输入的数小于等于1,则直接返回。如果循环结束后都没有找到可以整除输入数的数,则说明它是素数,返回。如果一个数是素数,就将其打印出来。的类,其中包含两个方法。

C#-LINQ基础 where 两个筛选条件_c# 筛选 两个条件的数量-程序员宅基地

文章浏览阅读3.5k次。 .NET Framework : 4.7.2       IDE : Visual Studio Community 2019        OS : Windows 10 x64    typesetting : Markdown       blog : blog.csdn.net/yushaopu      gi..._c# 筛选 两个条件的数量

python学习—查找指定目录下的指定类型文件_python读取某个路径里某种类型的文件-程序员宅基地

文章浏览阅读1.4k次,点赞27次,收藏19次。遍历指定目录(包括子目录)下的所有JPG文件,写入txt文件_python读取某个路径里某种类型的文件

DCC-MGARCH:动态条件相关系数模型(R+Stata)_dcc garch stata-程序员宅基地

文章浏览阅读7k次。原文链接:https://www.lianxh.cn/news/547c05d012a2d.html目录1. GARCH 模型介绍 2. DCC-MGARCH 基本原理 3. 软件实现 3.1 R 语言命令 3.2 Stata 命令 4. DCC-MGARCH 模型的应用 5. 参考文献1. GARCH 模型介绍简单地说,多元 GARCH 指的是多个时间序列之间各自波动的交互影响,这里的波动具体指的是建立时间序列 ARIMA 或 VAR 模型后,提取到的各时间序列残差的波_dcc garch stata

推荐文章

热门文章

相关标签