美文网首页
leetcode-day11-栈与队列

leetcode-day11-栈与队列

作者: 独孤蝴蝶 | 来源:发表于2023-06-18 20:04 被阅读0次

滑动窗口最大值

题解:

使用单调队列,放进去窗口里的元素,随着窗口的移动,队列也一进一出,每次移动之后,就会得到窗口的最大值是什么。队列里的数据一定是要排序的,不然不知道最大值,但如果吧窗口里的元素都放进队列里,窗口移动的时候,队列需要弹出元素,其实队列没有必要维护窗口里的所有元素,只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是有大到小的。采用单调递减队列

设计打你到队列的时候:

pop(value):如果窗口移除元素的value等于单调队列的出口元素,那么队列弹出元素,否则不用任何操作

push(value):如果push的元素value大于入口的元素,那么将队列入口的元素弹出,直到push元素的数值小于等于队列入口元素的数值为止

front,返回的是队列窗口最大值

代码:

前K个高频元素

题解:

涉及到三个内容:

1.统计元素出现的频率

2.对频率排序

3.找出前k个高频元素

使用优先队列,也就是堆,使用大顶堆还是小顶堆。

大顶堆:定义个大小为k的大顶堆,在每次移动更新大顶堆的时候,每次弹出都把最大的元素弹出,如何保留下来前k个高频元素?而且使用大顶堆就要吧所有元素进行排序

小顶堆:统计最大前k个元素,只有小顶堆每次将最小的元素弹出,最后小顶堆里积累的才是前k个最大元素

因此使用小顶堆

代码:

相关文章

  • Swift 队列&栈 相关操作

    栈 LIFO(后进先出) 队列 FIFO(先进先出) 队列与栈相互的实现 栈 - 队列实现 队列 - 栈实现 相关...

  • 数据结构学习 | 队列和栈

    栈 后进先出 栈顶允许插入(压栈)、删除(弹栈) 应用:数制转换数制转换与栈 队列 先进先出 队列头部允许删除,队...

  • Algorithm小白入门 -- 队列和栈

    队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构...

  • 常见数据结构

    栈、队列、数组、链表、树、哈希表 栈 与 队列 首先我们需要了解【栈】与【列队】的区别,它们的最大区别就是数据进出...

  • 栈和队列

    用栈定义队列(出入栈) 用队列定义栈(数据队列和辅助队列)

  • LeetCode刷题笔记(三)栈与队列

    三. 栈与队列 python中的栈直接用list实现,队列用deque,需要导入外部包。 155. 最小栈 题目:...

  • 实 验 四 栈和队列

    一、实验目的与要求:## 1、理解栈和队列抽象数据类型。 2、掌握栈和队列的存储结构和操作实现。 3、理解栈和队列...

  • 数据结构的各种代码

    第 02 章 线性表 顺序存储结构 链式存储结构 第 03 章 栈与队列 顺序栈 链栈 两栈共享空间 循环队列 链...

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • 2019-05-12(高数二轮概念梳理与408一轮同时进行)

    今日复习:极限、连续 与栈、队列

网友评论

      本文标题:leetcode-day11-栈与队列

      本文链接:https://www.haomeiwen.com/subject/telsydtx.html