代码随想录算法训练营第十三天 | 239. 滑动窗口最大值,347.前 K 个高频元素
一、239. 滑动窗口最大值
题目链接:
学习前:
思路:
无
学习后:
自定义双端队列,实现push、pop、peek方法,使得队列单调非增。peek方法不变;当入队时,若当前元素比队尾元素大,则pop队尾,直到队列为空或当前元素不大于队尾元素;当出队时,若队列非空且队首元素和窗口要离开的元素值相等,则pop
时间复杂度:O(n)
空间复杂度:O(k)
二、347.前 K 个高频元素
题目链接:
学习前:
思路:
无
学习后:
- 定义map集合,获取元素出现的频率
- 定义优先级队列,存放前k个高频元素的键值对
- 从优先级队列中获取这k个元素
时间复杂度:O(nlogk)
空间复杂度:O(n)
三、学习总结
- 时间:3h
- 滑动窗口要借助双端队列,自定义实现
- 优先级队列底层数据结构是大顶堆或小顶堆,还需要再深入了解下

浙公网安备 33010602011771号