Minimum Swaps to Arrange a Binary Grid LeetCode solution in C++

1
class Solution {
2
public:
3
int minSwaps(vector<vector<int>> &grid) {
4
int n = grid.size();
5
vector<int> mr(n, 0);
6
vector<int> br(n, 0);
7
for (int i = 0; i < n; i++) {
8
for (int j = 0; j < n; j++) {
9
if (grid[i][j] == 1) mr[i] = j;
10
}
11
}
12
br = mr;
13
sort(mr.begin(), mr.end());
14
for (int i = 0; i < n; i++)
15
if (mr[i] > i) return -1;
16
int count = 0;
17
for (int i = 0; i < n; i++) {
18
for (int j = i + 1; j < n; j++) {
19
if (br[i] > i) {
20
swap(br[i], br[j]);
21
count++;
22
}
23
}
24
}
25
return count;
26
}
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0