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

一、239. 滑动窗口最大值

题目链接:

LeetCode 239. 滑动窗口最大值

学习前:

思路:

学习后:

自定义双端队列,实现push、pop、peek方法,使得队列单调非增。peek方法不变;当入队时,若当前元素比队尾元素大,则pop队尾,直到队列为空或当前元素不大于队尾元素;当出队时,若队列非空且队首元素和窗口要离开的元素值相等,则pop

时间复杂度:O(n)

空间复杂度:O(k)

二、347.前 K 个高频元素

题目链接:

LeetCode 347.前 K 个高频元素

学习前:

思路:

学习后:

  1. 定义map集合,获取元素出现的频率
  2. 定义优先级队列,存放前k个高频元素的键值对
  3. 从优先级队列中获取这k个元素
    时间复杂度:O(nlogk)

空间复杂度:O(n)

三、学习总结

  1. 时间:3h
  2. 滑动窗口要借助双端队列,自定义实现
  3. 优先级队列底层数据结构是大顶堆或小顶堆,还需要再深入了解下
posted @   amulet  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示