题目链接 题意: 你有一个数字串,开始为空,每轮你可以进行下面两个操作中的一个: 从末尾删除若干个数字(可以为 0 个)然后把删除后的数字串的最后一个元素加一。 将数字 1 加入到数字串的末端。 现在告诉你你一共进行了 n 次这样的操作,并且告诉你每一次操作完后数字串末尾的数字,让你找到一种可行的方 ...
分类:
其他好文 时间:
2021-06-02 20:37:41
阅读次数:
0
原题链接 题意:很多链,然后让每条链中各个元素都要挨在一起,然后给他们每个元素分配层数,层数相同的要以元素大小从左往右。 题解:就是两个栈模拟一下贪心即可。 代码: #include <algorithm> #include <cstring> #include <cstdio> #include ...
分类:
其他好文 时间:
2021-04-29 11:36:03
阅读次数:
0
定义 栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。栈按照后进先出的原则来存储数据,也就是说,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出。栈在汇编语言程序中,经常用于重要数据的现场保护。栈中没有数据时,称为空栈。 模拟实现 clas ...
分类:
编程语言 时间:
2020-08-29 15:22:49
阅读次数:
61
虚树对于多次询问的时候有这优化复杂度的好处,其原理就是只保留有用节点和必须保留的有用节点的lca 先求一遍dfs序后,用栈模拟操作,根据lca是否在栈中确定是否要将lca加入栈,因为重构了树,因此原来的边的信息需要进行更换 对于本题,新的边其实就是路径上的边权的最小值,这是因为随便切掉一个边就能把他 ...
分类:
其他好文 时间:
2020-07-22 16:20:10
阅读次数:
75
前言 昨天和今天复习了二叉树的前序遍历、中序遍历和后序遍历,找到了一种统一的非递归的方法(即使用一个思路非递归实现二叉树的前序、中序和后序遍历)。 思路 思路本质上还是递归,只不过不通过递归函数显示地递归,而是通过栈模拟递归的过程。 具体思路:https://leetcode-cn.com/prob ...
分类:
其他好文 时间:
2020-07-13 15:41:18
阅读次数:
65
设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0; int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0; void Push(St ...
分类:
其他好文 时间:
2020-06-24 19:45:42
阅读次数:
56
目录 一、背景 二、概念 2.1 栈 2.2 队列 三、栈和队列的相互实现 3.1 用队列实现栈 3.2 用栈实现队列 四、总结 一、背景 栈和队列是数据结构中最常用到的两种结构,有非常广泛的运用,该篇文章将通过动画的手段,展示栈和队列相互实现的底层原理,让我们真正搞懂栈和队列的特性。 二、概念 2 ...
分类:
其他好文 时间:
2020-06-10 09:21:44
阅读次数:
82
本题考点:采用堆栈模拟队列 [toc] 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: :判断堆栈 是否已满,返回1或0; :判断堆栈 是否为空,返回1或0; :将元素 压入堆栈 ; :删除并返回 的栈顶元素。 实现队列的操作 ...
分类:
其他好文 时间:
2020-04-03 21:37:02
阅读次数:
179
题目链接:https://vjudge.net/problem/UVA-514 思路: 用两个指针 A , B 分别表示 ' 理论上驶出车站的车厢 ' 、 ' 实际上驶出车站的车厢 ' 用循环、栈模拟 (是的这就是刘哥的代码) 1 #include <cstdio> 2 #include <stac ...
分类:
其他好文 时间:
2020-03-18 20:21:20
阅读次数:
78