代码随想录二刷 Day13

有些数据结构的知识不记得了 比如priority queue, 数据没有前后的区别,是a bag of numbers with priority;小顶堆(min heap)和大顶堆常用于实现优先队列,小顶堆通常用于求出数据集中的最小值,而大顶堆通常用于求出数据集中的最大值

代码随想录二刷 Day13_第1张图片

代码随想录二刷 Day13_第2张图片

deque是一个双向队列(double-ended queue),可以在队列的两端进行元素的插入和删除操作。deque的全称是double-ended queue,翻译过来就是双端队列,也有人称之为双向队列,这两个名称都可以表示该数据结构。deque是C++STL(标准模板库)中的一种容器,可以用于存储各种类型的元素。deque的特点是可以在队列的两端进行元素的操作,并且可以高效地在队列的任意位置进行元素的插入和删除操作。
可以说deque几乎涵盖了queue(队列)、stack(堆栈)、vector(向量 )等的全部用法

1.push_back():在队列尾部添加元素,无返回值。这个操作跟普通队列(queue)的push()方法类似,在队列的尾部添加一个元素;
2.push_front():在队列头部添加元素,无返回值;
3.pop_back():删除队列尾部的元素,无返回值;
4.pop_front():删除队列头部的元素,无返回值;
5.front() :获得队列头部元素。此函数返回值为队列的头部元素,常与

6.pop_front()函数一起,先通过front()获得队列头部元素,然后用pop_front()将其从队列中删除;
7.back(): 获得队列尾部元素。此函数返回值为队列的尾部元素,常与8.pop_back()函数一起,先通过back()获得队列头部元素,然后用pop_back()将其从队列中删除;
9.size():获得队列大小。此函数返回队列的大小,返回值是“size_t”类型的数据,“size_t”是“unsigned int”的别名;
10.empty() :判断队列是否为空。此函数返回队列是否为空,返回值是bool类型。队列空:返回true;不空:返回false

239题做不出来 要自己实现一个单调队列,下面这句的意思是比如有时候 1,3,-1进去然后里面只会剩下3,-1,这时候移动窗口需要pop 1, 这时候顶的数据是3和1不相等,那这时候就选择不pop

que.empty() && value == que.front()

347题不用大顶堆是因为我们希望在堆里面存放K个我们需要的元素,堆每次进来元素的时候都需要从父节点pop一个元素而且还是最大的元素,等遍历结束后剩下的元素反而是小的的元素 

你可能感兴趣的:(java,算法,开发语言)