File tree 2 files changed +71
-0
lines changed
2 files changed +71
-0
lines changed Original file line number Diff line number Diff line change @@ -217,6 +217,44 @@ function minTime(time: number[], m: number): number {
217
217
}
218
218
```
219
219
220
+ #### Swift
221
+
222
+ ``` swift
223
+ class Solution {
224
+ func minTime (_ time : [Int ], _ m : Int ) -> Int {
225
+ var left = 0
226
+ var right = time.reduce (0 , + )
227
+
228
+ while left < right {
229
+ let mid = (left + right) / 2
230
+ if check (mid, time, m) {
231
+ right = mid
232
+ } else {
233
+ left = mid + 1
234
+ }
235
+ }
236
+ return left
237
+ }
238
+
239
+ private func check (_ t : Int , _ time : [Int ], _ m : Int ) -> Bool {
240
+ var sum = 0
241
+ var maxTime = 0
242
+ var days = 1
243
+
244
+ for x in time {
245
+ sum += x
246
+ maxTime = max (maxTime, x)
247
+ if sum - maxTime > t {
248
+ sum = x
249
+ maxTime = x
250
+ days += 1
251
+ }
252
+ }
253
+ return days <= m
254
+ }
255
+ }
256
+ ```
257
+
220
258
<!-- tabs: end -->
221
259
222
260
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ func minTime( _ time: [ Int ] , _ m: Int ) -> Int {
3
+ var left = 0
4
+ var right = time. reduce ( 0 , + )
5
+
6
+ while left < right {
7
+ let mid = ( left + right) / 2
8
+ if check ( mid, time, m) {
9
+ right = mid
10
+ } else {
11
+ left = mid + 1
12
+ }
13
+ }
14
+ return left
15
+ }
16
+
17
+ private func check( _ t: Int , _ time: [ Int ] , _ m: Int ) -> Bool {
18
+ var sum = 0
19
+ var maxTime = 0
20
+ var days = 1
21
+
22
+ for x in time {
23
+ sum += x
24
+ maxTime = max ( maxTime, x)
25
+ if sum - maxTime > t {
26
+ sum = x
27
+ maxTime = x
28
+ days += 1
29
+ }
30
+ }
31
+ return days <= m
32
+ }
33
+ }
You can’t perform that action at this time.
0 commit comments