代码随想录算法训练营DAY 13| 239. 滑动窗口最大值 347.前 K 个高频元素

239. 滑动窗口最大值

题目链接:https://leetcode.cn/problems/sliding-window-maximum/
思路:一开始完全没有头绪,看了卡哥的视频讲解,理解如下:
队列只需要维护有可能成为窗口里最大值的元素,同时保证队列里的元素数值是由大到小的。(单调队列)
队列出口元素是窗口里最大元素,每次从队尾push进元素时,需要与其前面的元素比较,从队尾pop出比其小的元素,每次pop元素时,需要将新元素与队列出口元素对比,如果值等于队列出口元素,则将队列出口元素pop出,在一个窗口内进行操作获取最大值然后一个周期结束,滑动窗口
在这里插入图片描述
小结:这里出现了小问题,没有定义类单调序列,还有里面的private和public的具体含义没有定清楚。

347.前 K 个高频元素

题目链接:https://leetcode.cn/problems/top-k-frequent-elements/
思路(靠题解视频总结):
这个题目涉及三个方面:要统计元素出现频率、对频率排序、找出前K个高频元素
统计元素出现的频率,这一类的问题可以使用map来进行统计。
对频率进行排序,使用优先级队列(对外接口只是从队头取元素,从队尾添加元素)。
要用小顶堆,因为要统计最大前k个元素,只有弹出,每次是从栈顶弹出。
在这里插入图片描述
小结:思路大概明白了,但是一些细节比如顶锥的定义,map的遍历还是需要多加熟悉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值