mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
添加了0239-golang版本
This commit is contained in:
@ -267,6 +267,36 @@ Python:
|
|||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
|
```go
|
||||||
|
func maxSlidingWindow(nums []int, k int) []int {
|
||||||
|
var queue []int
|
||||||
|
var rtn []int
|
||||||
|
|
||||||
|
for f := 0; f < len(nums); f++ {
|
||||||
|
//维持队列递减, 将 k 插入合适的位置, queue中 <=k 的 元素都不可能是窗口中的最大值, 直接弹出
|
||||||
|
for len(queue) > 0 && nums[f] > nums[queue[len(queue)-1]] {
|
||||||
|
queue = queue[:len(queue)-1]
|
||||||
|
}
|
||||||
|
// 等大的后来者也应入队
|
||||||
|
if len(queue) == 0 || nums[f] <= nums[queue[len(queue)-1]] {
|
||||||
|
queue = append(queue, f)
|
||||||
|
}
|
||||||
|
|
||||||
|
if f >= k - 1 {
|
||||||
|
rtn = append(rtn, nums[queue[0]])
|
||||||
|
//弹出离开窗口的队首
|
||||||
|
if f - k + 1 == queue[0] {
|
||||||
|
queue = queue[1:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return rtn
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
Javascript:
|
Javascript:
|
||||||
```javascript
|
```javascript
|
||||||
var maxSlidingWindow = function (nums, k) {
|
var maxSlidingWindow = function (nums, k) {
|
||||||
|
Reference in New Issue
Block a user