File tree 2 files changed +55
-0
lines changed
2 files changed +55
-0
lines changed Original file line number Diff line number Diff line change @@ -254,6 +254,36 @@ public class Solution {
254
254
}
255
255
```
256
256
257
+ #### Swift
258
+
259
+ ``` swift
260
+ class Solution {
261
+ func maxSlidingWindow (_ nums : [Int ], _ k : Int ) -> [Int ] {
262
+ let n = nums.count
263
+ var ans = [Int ]()
264
+ var deque = [Int ]()
265
+
266
+ for i in 0 ..< n {
267
+ if ! deque.isEmpty && deque.first ! < i - k + 1 {
268
+ deque.removeFirst ()
269
+ }
270
+
271
+ while ! deque.isEmpty && nums[deque.last ! ] <= nums[i] {
272
+ deque.removeLast ()
273
+ }
274
+
275
+ deque.append (i)
276
+
277
+ if i >= k - 1 {
278
+ ans.append (nums[deque.first ! ])
279
+ }
280
+ }
281
+
282
+ return ans
283
+ }
284
+ }
285
+ ```
286
+
257
287
<!-- tabs: end -->
258
288
259
289
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ func maxSlidingWindow( _ nums: [ Int ] , _ k: Int ) -> [ Int ] {
3
+ let n = nums. count
4
+ var ans = [ Int] ( )
5
+ var deque = [ Int] ( )
6
+
7
+ for i in 0 ..< n {
8
+ if !deque. isEmpty && deque. first! < i - k + 1 {
9
+ deque. removeFirst ( )
10
+ }
11
+
12
+ while !deque. isEmpty && nums [ deque. last!] <= nums [ i] {
13
+ deque. removeLast ( )
14
+ }
15
+
16
+ deque. append ( i)
17
+
18
+ if i >= k - 1 {
19
+ ans. append ( nums [ deque. first!] )
20
+ }
21
+ }
22
+
23
+ return ans
24
+ }
25
+ }
You can’t perform that action at this time.
0 commit comments