File tree 2 files changed +77
-0
lines changed
2 files changed +77
-0
lines changed Original file line number Diff line number Diff line change @@ -140,6 +140,47 @@ class Solution {
140
140
}
141
141
```
142
142
143
+ #### Swift
144
+
145
+ ``` swift
146
+ class Solution {
147
+ func getTriggerTime (_ increase : [[Int ]], _ requirements : [[Int ]]) -> [Int ] {
148
+ let m = increase.count , n = requirements.count
149
+ var s = Array (repeating : [0 , 0 , 0 ], count : m + 1 )
150
+
151
+ for i in 0 ..< m {
152
+ for j in 0 ..< 3 {
153
+ s[i + 1 ][j] = s[i][j] + increase[i][j]
154
+ }
155
+ }
156
+
157
+ var ans = Array (repeating : -1 , count : n)
158
+ for i in 0 ..< n {
159
+ var left = 0 , right = m + 1
160
+ while left < right {
161
+ let mid = (left + right) / 2
162
+ if check (s[mid], requirements[i]) {
163
+ ans[i] = mid
164
+ right = mid
165
+ } else {
166
+ left = mid + 1
167
+ }
168
+ }
169
+ }
170
+ return ans
171
+ }
172
+
173
+ private func check (_ a : [Int ], _ b : [Int ]) -> Bool {
174
+ for i in 0 ..< 3 {
175
+ if a[i] < b[i] {
176
+ return false
177
+ }
178
+ }
179
+ return true
180
+ }
181
+ }
182
+ ```
183
+
143
184
<!-- tabs:end -->
144
185
145
186
<!-- solution:end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ func getTriggerTime( _ increase: [ [ Int ] ] , _ requirements: [ [ Int ] ] ) -> [ Int ] {
3
+ let m = increase. count, n = requirements. count
4
+ var s = Array ( repeating: [ 0 , 0 , 0 ] , count: m + 1 )
5
+
6
+ for i in 0 ..< m {
7
+ for j in 0 ..< 3 {
8
+ s [ i + 1 ] [ j] = s [ i] [ j] + increase[ i] [ j]
9
+ }
10
+ }
11
+
12
+ var ans = Array ( repeating: - 1 , count: n)
13
+ for i in 0 ..< n {
14
+ var left = 0 , right = m + 1
15
+ while left < right {
16
+ let mid = ( left + right) / 2
17
+ if check ( s [ mid] , requirements [ i] ) {
18
+ ans [ i] = mid
19
+ right = mid
20
+ } else {
21
+ left = mid + 1
22
+ }
23
+ }
24
+ }
25
+ return ans
26
+ }
27
+
28
+ private func check( _ a: [ Int ] , _ b: [ Int ] ) -> Bool {
29
+ for i in 0 ..< 3 {
30
+ if a [ i] < b [ i] {
31
+ return false
32
+ }
33
+ }
34
+ return true
35
+ }
36
+ }
You can’t perform that action at this time.
0 commit comments