from collections import deque # 双端队列的特点,后进的总是在两边。从两边压入导致先进去的会在中间 # 双端队列的底层使用链表结构,所以insert 和 remove操作效率 远远高于列表 dq = deque() # 默认append从右边压入 dq.append(1... ...
分类:
其他好文 时间:
2019-06-26 20:43:01
阅读次数:
140
9.1Java集合框架 一些有的没的 可以使用接口类型存放集合的引用。一旦改变了想法,只需要在调用构造函数的地方做一处修改。 add方法用于向集合添加元素,如果添加元素确实改变了集合就返回true。 tostring()方法用来调试。 迭代器 不同于C++,查找操作与迭代器的位置变更是紧密相连的,在 ...
分类:
编程语言 时间:
2019-06-17 12:26:17
阅读次数:
152
LinkedList是一个以双向链表实现的List,它除了作为List使用,还可以作为队列或者堆栈使用。 <! more LinkedList介绍 LinkedList继承关系 LinkedList简介 1. 是一个继承于 的双向链表。它也可以被当做堆栈、队列或双端队列进行使用。 2. 实现 接口, ...
分类:
其他好文 时间:
2019-06-02 20:39:12
阅读次数:
135
6.基本数据结构-双端队列(Deque) 一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合。它有两个端部,首部和尾部,并且项在集合中保持不变。 - 特性:deque 特殊之处在于添加和删除项是非限制性的。可以在前面或后面添加新项。同样,可以从任一端移除现有 ...
分类:
其他好文 时间:
2019-06-01 19:42:53
阅读次数:
83
一.时间复杂度 1.基本概念 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n) 2.示例说明 ① ② ③三种不同数据结构的时间复杂度 二.timeit(测试代码执行的平均值) 三. 栈 1.基本操 ...
分类:
其他好文 时间:
2019-06-01 19:38:41
阅读次数:
96
简单列了一点 1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 1.2 中级数据结构 1. 堆 2. 并查集与带权并查集 3. hash 表 自然溢出 双hash 1.3 高级数据结构 1. 树状数组 2. 线段树,线段树合并 3. 平衡树 T ...
分类:
编程语言 时间:
2019-05-19 14:20:40
阅读次数:
151
题目 给定数组arr和整数num,求数组的子数组中有多少个的满足“最大值减去最小值 maxQue = new LinkedList(); LinkedList minQue = new LinkedList(); int i = 0; int j = 0; while (i = arr[j]) { ...
分类:
编程语言 时间:
2019-05-16 22:53:29
阅读次数:
159
问题描述 输入数组arr={4,3,5,4,3,3,6,7},窗口大小w=3,窗口由左向右移动,输出每个窗口最大值组成的数组。 解题思路 数据结构:使用ArrayList模拟双端队列。 遍历一遍arr,时间复杂度O(n)。具体地, 队列队尾的位置对应的元素若不比当前位置对应元素大,则弹出,否则,将当 ...
分类:
编程语言 时间:
2019-05-14 23:10:50
阅读次数:
298
#include using namespace std; /** * FIFO算法的实现:其实是可以采用双端队列,然后限制一下 * 双端队列的长度,根据我的限制应该是4。对于查询是否出现 * 在这个队列里面,我们可以采用一个数组标记是否有存在。 * * 测试数据如下 16 4 0 1 2 4 3 ... ...
分类:
编程语言 时间:
2019-05-06 01:37:30
阅读次数:
370
LinkedList概述 LinkedList 实现List接口,底层是双向链表,非线程安全。LinkedList还可以被当作堆栈、队列或双端队列进行操作。在JDK1.7/8 之后取消了循环,修改为双向链表。 LinkedList 实现 List 接口,能对它进行队列操作。 LinkedList 实 ...
分类:
其他好文 时间:
2019-04-30 19:53:38
阅读次数:
140