File tree Expand file tree Collapse file tree 3 files changed +27
-21
lines changed
solution/2100-2199/2134.Minimum Swaps to Group All 1's Together II Expand file tree Collapse file tree 3 files changed +27
-21
lines changed Original file line number Diff line number Diff line change @@ -163,15 +163,17 @@ func minSwaps(nums []int) int {
163
163
164
164
``` ts
165
165
function minSwaps(nums : number []): number {
166
- const k = nums .reduce ((a , b ) => a + b , 0 );
167
- let cnt = nums .slice (0 , k ).reduce ((a , b ) => a + b , 0 );
168
- let mx = cnt ;
169
166
const n = nums .length ;
170
- for (let i = k ; i < n + k ; ++ i ) {
171
- cnt += nums [i % n ] - nums [(i - k + n ) % n ];
172
- mx = Math .max (mx , cnt );
167
+ const k = nums .reduce ((a , b ) => a + b , 0 );
168
+ let cnt = k - nums .slice (0 , k ).reduce ((a , b ) => a + b , 0 );
169
+ let min = cnt ;
170
+
171
+ for (let i = k ; i < n + k ; i ++ ) {
172
+ cnt += nums [i - k ] - nums [i % n ];
173
+ min = Math .min (min , cnt );
173
174
}
174
- return k - mx ;
175
+
176
+ return min ;
175
177
}
176
178
```
177
179
Original file line number Diff line number Diff line change @@ -165,15 +165,17 @@ func minSwaps(nums []int) int {
165
165
166
166
``` ts
167
167
function minSwaps(nums : number []): number {
168
- const k = nums .reduce ((a , b ) => a + b , 0 );
169
- let cnt = nums .slice (0 , k ).reduce ((a , b ) => a + b , 0 );
170
- let mx = cnt ;
171
168
const n = nums .length ;
172
- for (let i = k ; i < n + k ; ++ i ) {
173
- cnt += nums [i % n ] - nums [(i - k + n ) % n ];
174
- mx = Math .max (mx , cnt );
169
+ const k = nums .reduce ((a , b ) => a + b , 0 );
170
+ let cnt = k - nums .slice (0 , k ).reduce ((a , b ) => a + b , 0 );
171
+ let min = cnt ;
172
+
173
+ for (let i = k ; i < n + k ; i ++ ) {
174
+ cnt += nums [i - k ] - nums [i % n ];
175
+ min = Math .min (min , cnt );
175
176
}
176
- return k - mx ;
177
+
178
+ return min ;
177
179
}
178
180
```
179
181
Original file line number Diff line number Diff line change 1
1
function minSwaps ( nums : number [ ] ) : number {
2
- const k = nums . reduce ( ( a , b ) => a + b , 0 ) ;
3
- let cnt = nums . slice ( 0 , k ) . reduce ( ( a , b ) => a + b , 0 ) ;
4
- let mx = cnt ;
5
2
const n = nums . length ;
6
- for ( let i = k ; i < n + k ; ++ i ) {
7
- cnt += nums [ i % n ] - nums [ ( i - k + n ) % n ] ;
8
- mx = Math . max ( mx , cnt ) ;
3
+ const k = nums . reduce ( ( a , b ) => a + b , 0 ) ;
4
+ let cnt = k - nums . slice ( 0 , k ) . reduce ( ( a , b ) => a + b , 0 ) ;
5
+ let min = cnt ;
6
+
7
+ for ( let i = k ; i < n + k ; i ++ ) {
8
+ cnt += nums [ i - k ] - nums [ i % n ] ;
9
+ min = Math . min ( min , cnt ) ;
9
10
}
10
- return k - mx ;
11
+
12
+ return min ;
11
13
}
You can’t perform that action at this time.
0 commit comments