代码随想录训练营Day13单向队列和优先级队列的应用

滑动窗口最大值

如果用暴力解法,时间复杂度O(n)
而滑动窗口这种一端进一端出的特性,可以额外定义一个k大小的队列,而且要求是双向单调队列,这样每次返回队列的最大值就是当前窗口的最大值。

347.前k个高频元素

  1. 要统计元素出现的频率,可以用map,有key和value
  2. 要对频率排序保留前k个高频,优先级队列

优先级队列披着队列外衣的堆,对于优先级队列的操作:front取值,back添加值。
完全二叉树。
默认情况下priority_queue利用max-heap(大顶堆)完成对元素的排序,还有小顶堆方式。
在这道题里选择小顶堆,因为这样每次队首弹出的都是最小值,最后才能保存下k个最大值。

疑问:二叉树的建立如何写

总结

栈和队列不是容器,而是容器适配器,根据底层容器的选择来决定内存的连续性。他们的默认容器是deque

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值