滑动窗口最大值 - 单调队列
func maxSlidingWindow(nums []int, k int) []int {
queue := []int{}
res := []int{}
for i, num := range nums {
// queue[0] -> queue[len]: 大 -> 小
for len(queue) > 0 && num > nums[queue[len(queue) - 1]] {
queue = queue[:len(queue) - 1]
}
queue = append(queue, i)
if i >= k - 1 {
if i - k == queue[0] { // queue[0] 已不在滑动窗口内
queue = queue[1:]
}
res = append(res, nums[queue[0]])
}
}
return res
}