前言 使用链表实现队列,需要队首指向队列头部管理数据出对,队尾指向队列尾部管理数据入队。 具体实现 队列接口 public interface Queue<T> { /** * 元素入队 * @param t */ void enqueue(T t); /** * 元素出队 * @return */ ...
分类:
其他好文 时间:
2021-07-12 17:49:54
阅读次数:
0
#滑动窗口 ##思想 其实就是一个队列, 比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列! 如何移动? 我们只要把队列的左边的元素移出就行了,直到满足题目要求! 一直维持这样的队列,找出队列 ...
分类:
其他好文 时间:
2021-07-02 15:48:12
阅读次数:
0
fork 是一个系统调用,流程的最后会在 sys_call_table 中找到相应的系统调用 sys_fork。 SYSCALL_DEFINE0(fork) { ...... return _do_fork(SIGCHLD, 0, 0, NULL, NULL, 0); } long _do_fork ...
分类:
系统相关 时间:
2021-06-28 20:00:09
阅读次数:
0
栈实现队列 思路 在数据结构中,栈本身就具有倒序的作用,因此,如果在一组元素全部进栈后,最后进栈的会最先被弹出,而队列是最先进入的元素就最先被弹出。 如图:如果以 1 2 3 4 分别进入栈和队列,左为栈的弹出结果,右为队列的出队结果,刚好相反 于是,如果把栈得到的结果再次进行一次入栈操作,再出栈时 ...
分类:
其他好文 时间:
2021-05-24 00:53:44
阅读次数:
0
约瑟夫环 题目: 剑指 Offer 62. 圆圈中最后剩下的数字 5727. 找出游戏的获胜者 1、数学解法就是通过倒推,求出队伍长度为n时,(n=1)的下标会变成什么。 class Solution { public int lastRemaining(int n, int m) { int an ...
分类:
其他好文 时间:
2021-04-12 12:42:41
阅读次数:
0
原题链接 考察:双端队列bfs 思路: 双端队列常用于距离只有0,1的情况.当距离为0时,更新的点放在队头.当距离为1时,更新的点放在队尾. 判断01距离不用写冗长的if代码.可以参照方向数组预设距离为0的斜杠应该有的方向. 这里当出队的距离才是确定了此点的最短距离. 1 #include <ios ...
本文简单记录一下关于Queue接口中几种类似方法的区别: add() 和 offer() add() : 添加元素,如果添加成功则返回true,如果队列是满的,则抛出异常 offer() : 添加元素,如果添加成功则返回true,如果队列是满的,则返回false 区别:对于一些有容量限制的队列,当队 ...
分类:
编程语言 时间:
2021-04-09 12:57:32
阅读次数:
0
创建队列 #创建队列 queue=deque() #这里创建的是双端的 添加元素 #append()方法 O(1) queue.append(1) queue.append(2) queue.append(3) print(queue) #[1,2,3] 获取即将出队的元素 # O(1) temp1 ...
分类:
编程语言 时间:
2021-04-05 12:30:54
阅读次数:
0
解题思路: 栈是先进后出,队列是先进先出 # -*- coding:utf-8 -*- class Solution: # 初始化栈为空列表 def __init__(self): self.acceptStack=[] self.outputStack=[] def push(self, node ...
分类:
其他好文 时间:
2021-04-02 13:32:05
阅读次数:
0
第一章 栈与队列 **关键词:**滑动窗口 1-1 设计getMin功能的栈 思路:保存每次栈更新时的最小值,可以通过定义另外一个栈实现。 1-2 由两个栈组成的队列 思路: 队列是先进先出,栈是先进后出。入队列的时候将元素放入栈1,出队列时,如果栈2为空,将栈1的元素全部弹出压入栈2,这样栈2的弹 ...
分类:
其他好文 时间:
2021-03-01 13:51:59
阅读次数:
0