Skip to content

Commit f3a1f4c

Browse files
Sean PrashadSean Prashad
authored andcommitted
Update 239_Sliding_Window_Maximum.java
1 parent 9dd121f commit f3a1f4c

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

Sliding Window/239_Sliding_Window_Maximum.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
class Solution {
22
public int[] maxSlidingWindow(int[] nums, int k) {
3-
if (nums == null || nums.length == 0 || k <= 0) {
4-
return new int[0];
5-
}
6-
3+
ArrayDeque<Integer> q = new ArrayDeque<>();
74
int[] result = new int[nums.length - k + 1];
8-
Deque<Integer> dq = new LinkedList<>();
95

10-
for (int idx = 0; idx < nums.length; idx++) {
11-
if (!dq.isEmpty() && dq.peek() < idx - k + 1) {
12-
dq.pollFirst();
6+
int idx = 0;
7+
8+
for (int i = 0; i < nums.length; i++) {
9+
if (!q.isEmpty() && i - k + 1 > q.getFirst()) {
10+
q.removeFirst();
1311
}
1412

15-
while (!dq.isEmpty() && nums[idx] >= nums[dq.peekLast()]) {
16-
dq.pollLast();
13+
while (!q.isEmpty() && nums[i] >= nums[q.getLast()]) {
14+
q.removeLast();
1715
}
1816

19-
dq.offer(idx);
17+
q.offerLast(i);
2018

21-
if (idx - k + 1 >= 0) {
22-
result[idx - k + 1] = nums[dq.peekFirst()];
19+
if (i + 1 >= k) {
20+
result[idx] = nums[q.getFirst()];
21+
++idx;
2322
}
2423
}
2524

0 commit comments

Comments
 (0)