
数据结构
文章平均质量分 87
black_horse2018-Dong
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(DFS)1028. 从先序遍历还原二叉树
我们从二叉树的根节点 root开始进行深度优先搜索。在遍历中的每个节点处,我们输出D条短划线(其中D是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出S,还原树并返回其根节点root。示例 1:输入:"1-2--3--4-5--6--7"输出:[1,2,5,3,4,6,7]示例 2:输入:"1-2--3---4-5--6...原创 2020-06-18 12:42:15 · 381 阅读 · 0 评论 -
(dfs)297. 二叉树的序列化与反序列化
序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例:你可以将以下二叉树: 1 / \ 2 3 / \ 4 5序列化为 "[1,2,3,null...原创 2020-06-16 19:46:08 · 342 阅读 · 0 评论 -
146. LRU缓存机制
运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数...原创 2020-03-24 15:16:07 · 189 阅读 · 0 评论 -
构建二叉树
105. 从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)...原创 2020-03-23 12:17:50 · 187 阅读 · 0 评论 -
LRU缓存机制
146. LRU缓存机制运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入...原创 2020-01-20 16:12:43 · 368 阅读 · 0 评论 -
循环队列
622. 设计循环队列设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持...原创 2020-01-19 23:42:04 · 889 阅读 · 0 评论 -
(二叉树)199. 二叉树的右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入:[1,2,3,null,5,null,4]输出:[1, 3, 4]解释: 1 <---/ \2 3 <---\ \ 5 4 <---题解:广搜即可;cla...原创 2019-09-03 08:51:45 · 152 阅读 · 0 评论 -
主席树板子(带单点更新&&不带更新)
// 带单点更新的#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <ma...原创 2019-05-29 15:34:30 · 247 阅读 · 0 评论 -
(区间异或 / 区间或+求和)
E. XOR on Segmenttime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou've got an arraya, consisting ofnintegersa1, a2, ..., an...原创 2019-05-28 16:44:51 · 4716 阅读 · 0 评论 -
(线段树维护前缀和)Ryuji doesn't want to study
Ryuji is not a good student, and he doesn't want to study. But there are n books he should learn, each book has its knowledge a[i]a[i].Unfortunately, the longer he learns, the fewer he gets.That m...原创 2018-11-12 17:47:12 · 571 阅读 · 0 评论 -
(数组模仿双向链表)Boxes in a Line
给定N个盒子,从左到右分别标号为1~N;有下面4种操作:“1 X Y” 表示将编号为X的盒子移到编号为Y的左边;“2 X Y” 表示将编号为X移到编号为Y的右边;“3 X Y” 表示交换编号为X和Y的位置;“4” 表示将1~N所有的盒子反序。要你求经过M次操作之后,所有奇数位置的盒子标号之和。For example, if n = 6, after executing 1 1 4, t...原创 2019-02-24 14:00:37 · 508 阅读 · 0 评论 -
(最小堆)L2-012 关于堆的判断
L2-012关于堆的判断(25分)将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:x is the root:x是根结点; x and y are siblings:x和y是兄弟结点; x is the parent of y:x是y的父结点; x is a child of y:x是y的一个子结点。输入格式:每组测试第...原创 2019-03-27 17:51:51 · 417 阅读 · 0 评论 -
线段树区间合并(单点更新+查找包含该位置的最长连续全1串)
Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15230Accepted Submission(s): 6019 Problem Description...原创 2019-05-03 21:12:33 · 322 阅读 · 0 评论 -
(单调栈+线段树)2478 小b接水
2478 小b接水2 秒 262,144 KB 20 分 3 级题小b将n个宽度相同的积木顺序摆在一起,如下图所示。现在她告诉你每个积木的高度(可能为0)。她想知道如果她从高处倒下一杯水,最多有多少单位的水能被积木接住?假设每个积木的宽度都为1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,最多可以接...原创 2019-05-01 11:46:18 · 240 阅读 · 0 评论 -
(线段树+加map)1287 加农炮
1287 加农炮1 秒 131,072 KB 40 分 4 级题一个长度为M的正整数数组A,表示从左向右的地形高度。测试一种加农炮,炮弹平行于地面从左向右飞行,高度为H,如果某处地形的高度大于等于炮弹飞行的高度H(A[i] >= H),炮弹会被挡住并落在i - 1处,则A[i - 1] + 1。如果H <= A[0],则这个炮弹无效,如果H > 所有...原创 2019-05-11 19:48:41 · 190 阅读 · 0 评论 -
(线段树统计区间种类)
第14届中北大学程序设计竞赛来了,集训队新买了一大堆气球,气球一共有K种颜色(1<=K<=256),气球的颜色从1-K编号。ZBT童心未泯,他发明了一种摆放气球的游戏,规则如下。 一排有N个桌子,每张桌子上只有一个气球插孔,即每张桌子最多只能放一个气球。编号分别为1-N(1<=N<=100000),每张桌子一开始是空的。现在对这张桌子要进行M次操作(1&...原创 2019-05-16 19:36:48 · 896 阅读 · 0 评论 -
(线段树统计区间种数)Count Color
Count Color Time Limit:1000MS Memory Limit:65536K Total Submissions:54359 Accepted:16337 Description Chosen Problem Solving and Program design as ...原创 2019-05-12 18:28:12 · 631 阅读 · 0 评论 -
1272 最大距离(线段树 / 排序思维)
1272 最大距离1 秒 131,072 KB 20 分 3 级题给出一个长度为N的整数数组A,对于每一个数组元素,如果他后面存在大于等于该元素的数,则这两个数可以组成一对。每个元素和自己也可以组成一对。例如:{5, 3, 6, 3, 4, 2},可以组成11对,如下(数字为下标):(0,0), (0, 2), (1, 1), (1, 2), (1, 3), (1...原创 2018-11-08 21:20:55 · 295 阅读 · 0 评论