Skip to content

Commit e9e17fb

Browse files
committed
239 accepted.
1 parent 2fd8aa2 commit e9e17fb

File tree

1 file changed

+4
-11
lines changed

1 file changed

+4
-11
lines changed

Algorithms/0239.sliding-window-maximum/sliding-window-maximum.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
11
package problem0239
22

33
// 参看 https://leetcode.com/problems/sliding-window-maximum/discuss/65881/O(n)-solution-in-Java-with-two-simple-pass-in-the-array
4-
// 例子
5-
// nums = [2,1,3,4,6,3,8,9,10,12,56], k=4
6-
// split 2, 1, 3, 4 | 6, 3, 8, 9 | 10, 12, 56 // every k number into a group
7-
// left 2, 2, 3, 4 | 6, 6, 8, 9 | 10, 12, 56
8-
// right 4, 4, 4, 4 | 9, 9, 9, 9 | 56, 56, 56
9-
// res[i] = max(right_max[i], left[i+w-1])
10-
// res 4, 6, 6, 8,| 9, 10, 12, 56
114
func maxSlidingWindow(nums []int, k int) []int {
125
size := len(nums)
136
if k <= 1 {
@@ -17,19 +10,19 @@ func maxSlidingWindow(nums []int, k int) []int {
1710
g := k - 1
1811

1912
left := make([]int, size)
20-
left[0] = nums[0]
21-
for i := 1; i < size; i++ {
22-
if i%g == 1 {
13+
for i := 0; i < size; i++ {
14+
if i%g == 0 {
2315
left[i] = nums[i]
2416
} else {
2517
left[i] = max(nums[i], left[i-1])
2618
}
2719
}
2820

2921
right := make([]int, size)
22+
// size-1 很可能不是那组的最后一个,需要单独列出
3023
right[size-1] = nums[size-1]
3124
for j := size - 2; j >= 0; j-- {
32-
if j%g == 0 {
25+
if (j+1)%g == 0 {
3326
right[j] = nums[j]
3427
} else {
3528
right[j] = max(nums[j], right[j+1])

0 commit comments

Comments
 (0)