File tree 3 files changed +103
-0
lines changed
solution/1800-1899/1870.Minimum Speed to Arrive on Time
3 files changed +103
-0
lines changed Original file line number Diff line number Diff line change @@ -129,6 +129,42 @@ class Solution {
129
129
}
130
130
```
131
131
132
+ ### ** JavaScript**
133
+
134
+ ``` js
135
+ /**
136
+ * @param {number[]} dist
137
+ * @param {number} hour
138
+ * @return {number}
139
+ */
140
+ var minSpeedOnTime = function (dist , hour ) {
141
+ if (dist .length > Math .ceil (hour)) return - 1 ;
142
+ let left = 1 , right = 10 ** 7 ;
143
+ while (left < right) {
144
+ let mid = (left + right) >> 1 ;
145
+ if (arriveOnTime (dist, mid, hour)) {
146
+ right = mid;
147
+ } else {
148
+ left = mid + 1 ;
149
+ }
150
+ }
151
+ return left;
152
+ };
153
+
154
+ function arriveOnTime (dist , speed , hour ) {
155
+ let res = 0.0 ;
156
+ let n = dist .length ;
157
+ for (let i = 0 ; i < n; i++ ) {
158
+ let cost = parseFloat (dist[i]) / speed;
159
+ if (i != n - 1 ) {
160
+ cost = Math .ceil (cost);
161
+ }
162
+ res += cost;
163
+ }
164
+ return res <= hour;
165
+ }
166
+ ```
167
+
132
168
### ** ...**
133
169
134
170
```
Original file line number Diff line number Diff line change @@ -117,6 +117,42 @@ class Solution {
117
117
}
118
118
```
119
119
120
+ ### ** JavaScript**
121
+
122
+ ``` js
123
+ /**
124
+ * @param {number[]} dist
125
+ * @param {number} hour
126
+ * @return {number}
127
+ */
128
+ var minSpeedOnTime = function (dist , hour ) {
129
+ if (dist .length > Math .ceil (hour)) return - 1 ;
130
+ let left = 1 , right = 10 ** 7 ;
131
+ while (left < right) {
132
+ let mid = (left + right) >> 1 ;
133
+ if (arriveOnTime (dist, mid, hour)) {
134
+ right = mid;
135
+ } else {
136
+ left = mid + 1 ;
137
+ }
138
+ }
139
+ return left;
140
+ };
141
+
142
+ function arriveOnTime (dist , speed , hour ) {
143
+ let res = 0.0 ;
144
+ let n = dist .length ;
145
+ for (let i = 0 ; i < n; i++ ) {
146
+ let cost = parseFloat (dist[i]) / speed;
147
+ if (i != n - 1 ) {
148
+ cost = Math .ceil (cost);
149
+ }
150
+ res += cost;
151
+ }
152
+ return res <= hour;
153
+ }
154
+ ```
155
+
120
156
### ** ...**
121
157
122
158
```
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } dist
3
+ * @param {number } hour
4
+ * @return {number }
5
+ */
6
+ var minSpeedOnTime = function ( dist , hour ) {
7
+ if ( dist . length > Math . ceil ( hour ) ) return - 1 ;
8
+ let left = 1 , right = 10 ** 7 ;
9
+ while ( left < right ) {
10
+ let mid = ( left + right ) >> 1 ;
11
+ if ( arriveOnTime ( dist , mid , hour ) ) {
12
+ right = mid ;
13
+ } else {
14
+ left = mid + 1 ;
15
+ }
16
+ }
17
+ return left ;
18
+ } ;
19
+
20
+ function arriveOnTime ( dist , speed , hour ) {
21
+ let res = 0.0 ;
22
+ let n = dist . length ;
23
+ for ( let i = 0 ; i < n ; i ++ ) {
24
+ let cost = parseFloat ( dist [ i ] ) / speed ;
25
+ if ( i != n - 1 ) {
26
+ cost = Math . ceil ( cost ) ;
27
+ }
28
+ res += cost ;
29
+ }
30
+ return res <= hour ;
31
+ }
You can’t perform that action at this time.
0 commit comments