File tree 3 files changed +66
-0
lines changed
lcci/17.05.Find Longest Subarray
3 files changed +66
-0
lines changed Original file line number Diff line number Diff line change @@ -158,6 +158,29 @@ function findLongestSubarray(array: string[]): string[] {
158
158
}
159
159
```
160
160
161
+ ``` swift
162
+ class Solution {
163
+ func findLongestSubarray (_ array : [String ]) -> [String ] {
164
+ var vis: [Int : Int ] = [0 : -1 ]
165
+ var s = 0 , mx = 0 , k = 0
166
+
167
+ for i in 0 ..< array.count {
168
+ s += array[i].first ! .isLetter ? 1 : -1
169
+ if let j = vis[s] {
170
+ if mx < i - j {
171
+ mx = i - j
172
+ k = j + 1
173
+ }
174
+ } else {
175
+ vis[s] = i
176
+ }
177
+ }
178
+
179
+ return Array (array[k..< (k + mx)])
180
+ }
181
+ }
182
+ ```
183
+
161
184
<!-- tabs: end -->
162
185
163
186
<!-- end -->
Original file line number Diff line number Diff line change @@ -167,6 +167,29 @@ function findLongestSubarray(array: string[]): string[] {
167
167
}
168
168
```
169
169
170
+ ``` swift
171
+ class Solution {
172
+ func findLongestSubarray (_ array : [String ]) -> [String ] {
173
+ var vis: [Int : Int ] = [0 : -1 ]
174
+ var s = 0 , mx = 0 , k = 0
175
+
176
+ for i in 0 ..< array.count {
177
+ s += array[i].first ! .isLetter ? 1 : -1
178
+ if let j = vis[s] {
179
+ if mx < i - j {
180
+ mx = i - j
181
+ k = j + 1
182
+ }
183
+ } else {
184
+ vis[s] = i
185
+ }
186
+ }
187
+
188
+ return Array (array[k..< (k + mx)])
189
+ }
190
+ }
191
+ ```
192
+
170
193
<!-- tabs: end -->
171
194
172
195
<!-- end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ func findLongestSubarray( _ array: [ String ] ) -> [ String ] {
3
+ var vis : [ Int : Int ] = [ 0 : - 1 ]
4
+ var s = 0 , mx = 0 , k = 0
5
+
6
+ for i in 0 ..< array. count {
7
+ s += array [ i] . first!. isLetter ? 1 : - 1
8
+ if let j = vis [ s] {
9
+ if mx < i - j {
10
+ mx = i - j
11
+ k = j + 1
12
+ }
13
+ } else {
14
+ vis [ s] = i
15
+ }
16
+ }
17
+
18
+ return Array ( array [ k..< ( k + mx) ] )
19
+ }
20
+ }
You can’t perform that action at this time.
0 commit comments