File tree Expand file tree Collapse file tree 3 files changed +85
-0
lines changed
solution/1800-1899/1870.Minimum Speed to Arrive on Time Expand file tree Collapse file tree 3 files changed +85
-0
lines changed Original file line number Diff line number Diff line change @@ -312,6 +312,36 @@ var minSpeedOnTime = function (dist, hour) {
312
312
};
313
313
```
314
314
315
+ #### Kotlin
316
+
317
+ ``` kotlin
318
+ class Solution {
319
+ fun minSpeedOnTime (dist : IntArray , hour : Double ): Int {
320
+ val n = dist.size
321
+ if (n > Math .ceil(hour)) {
322
+ return - 1
323
+ }
324
+ val m = 1e7.toInt()
325
+ var left = 1
326
+ var right = m + 1
327
+ while (left < right) {
328
+ val middle = (left + right) / 2
329
+ var time = 0.0
330
+ dist.forEachIndexed { i, item ->
331
+ val t = item.toDouble() / middle
332
+ time + = if (i == n - 1 ) t else Math .ceil(t)
333
+ }
334
+ if (time > hour) {
335
+ left = middle + 1
336
+ } else {
337
+ right = middle
338
+ }
339
+ }
340
+ return if (left > m) - 1 else left
341
+ }
342
+ }
343
+ ```
344
+
315
345
<!-- tabs: end -->
316
346
317
347
<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -312,6 +312,36 @@ var minSpeedOnTime = function (dist, hour) {
312
312
};
313
313
```
314
314
315
+ #### Kotlin
316
+
317
+ ``` kotlin
318
+ class Solution {
319
+ fun minSpeedOnTime (dist : IntArray , hour : Double ): Int {
320
+ val n = dist.size
321
+ if (n > Math .ceil(hour)) {
322
+ return - 1
323
+ }
324
+ val m = 1e7.toInt()
325
+ var left = 1
326
+ var right = m + 1
327
+ while (left < right) {
328
+ val middle = (left + right) / 2
329
+ var time = 0.0
330
+ dist.forEachIndexed { i, item ->
331
+ val t = item.toDouble() / middle
332
+ time + = if (i == n - 1 ) t else Math .ceil(t)
333
+ }
334
+ if (time > hour) {
335
+ left = middle + 1
336
+ } else {
337
+ right = middle
338
+ }
339
+ }
340
+ return if (left > m) - 1 else left
341
+ }
342
+ }
343
+ ```
344
+
315
345
<!-- tabs: end -->
316
346
317
347
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ fun minSpeedOnTime (dist : IntArray , hour : Double ): Int {
3
+ val n = dist.size
4
+ if (n > Math .ceil(hour)) {
5
+ return - 1
6
+ }
7
+ val m = 1e7.toInt()
8
+ var left = 1
9
+ var right = m + 1
10
+ while (left < right) {
11
+ val middle = (left + right) / 2
12
+ var time = 0.0
13
+ dist.forEachIndexed { i, item ->
14
+ val t = item.toDouble() / middle
15
+ time + = if (i == n - 1 ) t else Math .ceil(t)
16
+ }
17
+ if (time > hour) {
18
+ left = middle + 1
19
+ } else {
20
+ right = middle
21
+ }
22
+ }
23
+ return if (left > m) - 1 else left
24
+ }
25
+ }
You can’t perform that action at this time.
0 commit comments