File tree Expand file tree Collapse file tree 3 files changed +67
-0
lines changed
solution/1000-1099/1040.Moving Stones Until Consecutive II Expand file tree Collapse file tree 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 {
176176}
177177```
178178
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+
179203### ** ...**
180204
181205```
Original file line number Diff line number Diff line change @@ -159,6 +159,30 @@ func min(a, b int) int {
159159}
160160```
161161
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+
162186### ** ...**
163187
164188```
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