题目详解
相关链接
思路
- 暴力解法时间复杂度是 O(n^2),而用单调队列只有 O(n)
- 使用双端队列实现单调递减队列,队顶始终是最大值
- 每次滑动窗口时,均有元素入队和出对,然后队顶元素就是当前窗口的最大值
看完代码随想录之后的想法
- 将单调队列的代码抽离封装好,主流程十分简单已读
实现过程中遇到的困难
- 实现单调队列时入队逻辑
代码
1 | function maxSlidingWindow(nums: number[], k: number): number[] { |
时间复杂度:O(n)
空间复杂度:O(n)
收获
- 学习了单调队列