【Leetcode】239. 滑动窗口最大值
- 题目链接
- 代码
题目链接
【Leetcode】239. 滑动窗口最大值
代码
func maxSlidingWindow(nums []int, k int) []int {// 单调队列使用的栈q := []int{}n := len(nums)// 结果切片ans := []int{}// 枚举切片for i := 0; i < n; i++ {// 如果栈顶元素 <= 当前元素,则一直出栈for len(q) > 0 && nums[q[len(q)-1]] <= nums[i] {q = q[:len(q)-1]}// 当前元素入栈q = append(q, i)// 如果窗口大小 > k,则左边界右移if len(q) > 0 && i-q[0]+1 > k {q = q[1:]}// 添加结果if i >= k-1 {ans = append(ans, nums[q[0]])}}return ans
}