Skip to content

Commit e57dd42

Browse files
committed
Add 1151_Minimum_Swaps_to_Group_All_1's_Together.java
1 parent 833b984 commit e57dd42

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Solution {
2+
public int minSwaps(int[] data) {
3+
if (data == null || data.length == 0) {
4+
return 0;
5+
}
6+
7+
int windowSize = 0;
8+
9+
for (int d : data) {
10+
if (d == 1) {
11+
++windowSize;
12+
}
13+
}
14+
15+
int result = 0, onesCount = 0;
16+
int left = 0, right = 0;
17+
18+
while (right < data.length) {
19+
onesCount += data[right];
20+
++right;
21+
22+
if (right - left > windowSize) {
23+
onesCount -= data[left];
24+
++left;
25+
}
26+
27+
result = Math.max(result, onesCount);
28+
}
29+
30+
return windowSize - result;
31+
}
32+
}

0 commit comments

Comments
 (0)