太阳hxy
太阳hxy
全部文章
题解
选择题(2)
归档
标签
去牛客网
登录
/
注册
太阳hxy的博客
全部文章
/ 题解
(共73篇)
包含min函数的栈
包含min函数的栈 思路:(双栈法) 1.由于对于pop()、top()、push()操作,直接用现有的stack中的这些操作就行,因为时间复杂度是O(1) 2.但是对于stack中现有的min函数,时间复杂度不是O(1) 3.所以可以通过另一个栈进行辅助记录栈1中的最小值,则栈2的栈顶元素就是...
C++
栈
2023-07-18
0
298
用两个栈实现队列
用两个栈实现队列 思路: 1.由于队列是先进先出的,然而栈是后进先出的 2.所以想要将入栈的元素模拟队列的结果,即先入的节点先出 3.则需要一个新的栈进行辅助,将栈1元素先压入栈2中,就实现了一次反转 4.此时栈2的栈顶的就是第一个元素,让这个元素出栈,就实现了先入先出 5.再将栈2中的元素再弹...
C++
栈
队列
模拟
2023-07-18
0
365
和大于等于K的最短子数组
和大于等于K的最短子数组 思路:(双指针) 1.先将右指针不断向右移动,直到区间的和大于等于k 2.当区间的长度大于等于k,就可以将左指针向右移动,不断取得最短的子数组的长度 代码: import java.util.*; public class Solution { //...
Java
双指针
滑动窗口
2023-07-18
1
451
序列化二叉树
序列化二叉树 知识点:二叉树递归 **递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。因此递归过程,最重要的就是查看能不能讲原本的问题分解为更小的子问题,这是使用递归的关键。**而二叉树的递归,则...
二叉树
递归
字符串
2023-07-18
0
313
按之字形顺序打印二叉树
按之字形顺序打印二叉树 思路(双栈法): 我们可以利用两个栈遍历这棵二叉树,第一个栈s1从根节点开始记录第一层,然后依次遍历两个栈,遍历第一个栈时遇到的子节点依次加入第二个栈s2中,即是第二层:而遍历第二个栈s2的时候因为是先进后出,因此就是逆序的,再将第二个栈s2的子节点依次加入第一个栈s1中...
C++
栈
队列
2023-07-18
0
372
按之字型顺序打印二叉树
按之字型顺序打印二叉树 图解: 链接 思路: 由于对于二叉树的分层打印,一般用队列进行维护 但是由于现在是按照之字形的顺序进行打印的,所以有些层需要在原先的顺序上进行反转 1.先判断树是否为空,如果为空,就直接返回 2.否则就创建一个队列进行维护 3.将每一层的节点都插入队列中,再将每一...
C++
二叉树
队列
模拟
2023-07-18
0
362
两个队列实现栈
两个队列实现栈 思路: 由于对于队列是先进先出的结构,但是栈是后入先出的结构,所以可以用两个队列实现栈。 1.入栈操作就是将元素入队列1 2.出栈操作就是需要将队列1中的除了最后一个元素外的其他元素都移动到队列2中 3.再将队列1中的最后一个元素出栈,将队列2中的元素放回队列1中 4.获得栈顶元...
C++
队列
栈
2023-07-18
1
506
从上往下打印二叉树
从上往下打印二叉树(用队列维护分层从左到右打印) 思路: 二叉树的层次遍历就是按照从上到下每行,然后每行中从左到右依次遍历,得到的二叉树的元素值。对于层次遍历,我们通常会使用队列来辅助: 因为队列是一种先进先出的数据结构,我们依照它的性质,如果从左到右访问完一行节点,并在访问的时候依次把它们的子...
C++
队列
二叉搜索树
2023-07-17
0
328
滑动窗口的最大值
滑动窗口的最大值 思路: 用单调队列维护窗口中的元素的单调性 1.将序列中的每个元素都插入单调队列中,将小于需要插入的这个节点的数从队尾弹出 2.再将这个节点插入单调队列中 3.将超出窗口范围的队首节点从队首弹出队列 4.输出每个窗口中的第一个值就是这个窗口的最大值 单调队列的性质: 1.队...
C++
滑动窗口
模拟
单调队列
2023-07-17
2
391
设计LRU缓存
设计LRU缓存 思路: 链接转载于https://blog.nowcoder.net/n/b279555a5cfd48f28fec790d96b0a1b9 代码: //双向链表的一个节点:包含该节点的值,对应map的索引,每个节点都有一个前驱指针和一个后驱指针 struct Node{ ...
C++
链表
模拟
哈希表
2023-07-16
0
388
首页
上一页
1
2
3
4
5
6
7
8
下一页
末页