File tree 3 files changed +67
-0
lines changed
solution/1000-1099/1040.Moving Stones Until Consecutive II
3 files changed +67
-0
lines changed Original file line number Diff line number Diff line change @@ -176,6 +176,30 @@ func min(a, b int) int {
176
176
}
177
177
```
178
178
179
+ ### ** TypeScript**
180
+
181
+ ``` ts
182
+ function numMovesStonesII(stones : number []): number [] {
183
+ stones .sort ((a , b ) => a - b );
184
+ const n = stones .length ;
185
+ let mi = n ;
186
+ const mx =
187
+ Math .max (stones [n - 1 ] - stones [1 ] + 1 , stones [n - 2 ] - stones [0 ] + 1 ) -
188
+ (n - 1 );
189
+ for (let i = 0 , j = 0 ; j < n ; ++ j ) {
190
+ while (stones [j ] - stones [i ] + 1 > n ) {
191
+ ++ i ;
192
+ }
193
+ if (j - i + 1 === n - 1 && stones [j ] - stones [i ] === n - 2 ) {
194
+ mi = Math .min (mi , 2 );
195
+ } else {
196
+ mi = Math .min (mi , n - (j - i + 1 ));
197
+ }
198
+ }
199
+ return [mi , mx ];
200
+ }
201
+ ```
202
+
179
203
### ** ...**
180
204
181
205
```
Original file line number Diff line number Diff line change @@ -159,6 +159,30 @@ func min(a, b int) int {
159
159
}
160
160
```
161
161
162
+ ### ** TypeScript**
163
+
164
+ ``` ts
165
+ function numMovesStonesII(stones : number []): number [] {
166
+ stones .sort ((a , b ) => a - b );
167
+ const n = stones .length ;
168
+ let mi = n ;
169
+ const mx =
170
+ Math .max (stones [n - 1 ] - stones [1 ] + 1 , stones [n - 2 ] - stones [0 ] + 1 ) -
171
+ (n - 1 );
172
+ for (let i = 0 , j = 0 ; j < n ; ++ j ) {
173
+ while (stones [j ] - stones [i ] + 1 > n ) {
174
+ ++ i ;
175
+ }
176
+ if (j - i + 1 === n - 1 && stones [j ] - stones [i ] === n - 2 ) {
177
+ mi = Math .min (mi , 2 );
178
+ } else {
179
+ mi = Math .min (mi , n - (j - i + 1 ));
180
+ }
181
+ }
182
+ return [mi , mx ];
183
+ }
184
+ ```
185
+
162
186
### ** ...**
163
187
164
188
```
Original file line number Diff line number Diff line change
1
+ function numMovesStonesII ( stones : number [ ] ) : number [ ] {
2
+ stones . sort ( ( a , b ) => a - b ) ;
3
+ const n = stones . length ;
4
+ let mi = n ;
5
+ const mx =
6
+ Math . max ( stones [ n - 1 ] - stones [ 1 ] + 1 , stones [ n - 2 ] - stones [ 0 ] + 1 ) -
7
+ ( n - 1 ) ;
8
+ for ( let i = 0 , j = 0 ; j < n ; ++ j ) {
9
+ while ( stones [ j ] - stones [ i ] + 1 > n ) {
10
+ ++ i ;
11
+ }
12
+ if ( j - i + 1 === n - 1 && stones [ j ] - stones [ i ] === n - 2 ) {
13
+ mi = Math . min ( mi , 2 ) ;
14
+ } else {
15
+ mi = Math . min ( mi , n - ( j - i + 1 ) ) ;
16
+ }
17
+ }
18
+ return [ mi , mx ] ;
19
+ }
You can’t perform that action at this time.
0 commit comments