1, 我记得以前好像还想好好搞来着..... 什么大根堆什么小根堆来着? 2 抄自ppt 很多种实现优先队列的方式,最常见的就是堆。 最常见的堆就是二叉堆,C++中priority_queue定义了一个以权值为优先级的堆。 #include<queue> priority_queue<数据类型> q ...
分类:
其他好文 时间:
2019-12-14 21:27:35
阅读次数:
92
一, 给定一个区间,求所有区间长度为L的区间的最大值和最小值 二, 该题有很多做法。 自然用的是滑动窗口(单调队列) 可能的做法: O(nlogn)的线段树 O(nlogn)的带删除优先队列(对顶堆) 还能再快一点吗? O(n)-O(1)RMQ代替线段树 三, 单调队列和单调栈的意思一样,始终要你维 ...
分类:
其他好文 时间:
2019-12-14 19:36:17
阅读次数:
140
TOP-K问题是面试高频题目,即在海量数据中找出最大(或最小的前k个数据),隐含条件就是内存不够容纳所有数据,所以把数据一次性读入内存,排序,再取前k条结果是不现实的。 下面我们用简单的Java8代码去解决TOP-K问题。为了使主要的逻辑更加清晰,去掉了一些如参数合法性检查等非关键代码。 Prior ...
分类:
其他好文 时间:
2019-12-07 01:10:36
阅读次数:
111
要点提示:Collection接口为线性表、向量、栈、队列,优先队列以及集合定义了共同的操作。 java合集框架支持以下两种类型的容器: 一种是为了存储一个元素 合集,简称为合集(collection); 另一种是为了存储键值对,称为映射表(map) 映射表是一个用于使用一个键(key)快速搜索一个 ...
分类:
其他好文 时间:
2019-12-06 11:42:00
阅读次数:
68
优先级队列默认less 大数优先。 priority_queue<Type, Container, Functional>其中Type 为数据类型, Container 为保存数据的容器,Functional 为元素比较方式。Container 必须是用数组实现的容器,比如 vector, dequ ...
分类:
其他好文 时间:
2019-12-04 01:37:16
阅读次数:
88
休息了两天,状态恢复了一下,补充点基础知识。 二叉搜索树 搜索树数据结构支持许多动态集合操作,包括Search,minimum,maximum,predecessor(前驱),successor(后继),INSERT和DELETE等。因此我们使用一颗搜索树既可以作为一个字典又可以作为一个优先队列。且 ...
分类:
其他好文 时间:
2019-11-30 21:13:07
阅读次数:
96
神仙题。 先考虑平方级别的暴力怎么做。 明显答案有单调性,先二分 $c$。 先最短路预处理 $dis_u$ 表示 $u$ 到离它最近的充电站的距离(一开始把 $1$ 到 $k$ 全部丢到优先队列里就行了)。 考虑当前站在 $u$ 点上时,剩余的电量是 $x$。注意到由于起点是充电站,就一定有 $x\ ...
分类:
其他好文 时间:
2019-11-24 00:11:33
阅读次数:
141
优先队列和BFS以及vector数组
awen买奶茶题目和喊山 ...
分类:
其他好文 时间:
2019-11-22 00:49:01
阅读次数:
67
不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。在并发场景下,常会用到ConcurrentHashMap、ArrayBlockingQueue等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。 ...
分类:
编程语言 时间:
2019-11-18 20:38:22
阅读次数:
82
1 常用的数据结构 2 高级数据结构 3 排序 4 查找 5 深度与广度优先搜索 6 动态规划 7 设计模式 数据结构和算法 1 常用的数据结构 栈 数组、字符串 队列 链表 树 双端队列 2 高级数据结构 优先队列 图 前缀树 线段树 树状数组 3 排序 基本排序 冒泡排序 选择排序 插入排序 希 ...
分类:
编程语言 时间:
2019-11-16 10:48:43
阅读次数:
92