File tree Expand file tree Collapse file tree 2 files changed +71
-0
lines changed Expand file tree Collapse file tree 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 {
217217}
218218```
219219
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+
220258<!-- tabs: end -->
221259
222260<!-- 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