52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
#include<vector>
|
|
#include<iostream>
|
|
using namespace std;
|
|
class Solution {
|
|
public:
|
|
vector<vector<int>> onesMinusZeros(vector<vector<int>>& grid) {
|
|
int cols[100010] = {};
|
|
int rows[100010] = {};
|
|
for(int i = 0 ; i < grid.size(); i++){
|
|
for(int j = 0 ; j < grid[i].size(); j++){
|
|
if(grid[i][j]){
|
|
cols[j]++;
|
|
rows[i]++;
|
|
}
|
|
}
|
|
}
|
|
int colszero[100010] = {};
|
|
int rowszero[100010] = {};
|
|
int cols_size = grid.size();
|
|
int rows_size = grid[0].size();
|
|
for(int i = 0 ; i <grid.size();i++){
|
|
colszero[i] = cols_size - cols[i];
|
|
rowszero[i] = rows_size - rows[i];
|
|
}
|
|
|
|
|
|
vector<vector<int> >rlt;
|
|
for(int i = 0 ; i < cols_size ; i++){
|
|
vector<int> tmp ;
|
|
for(int j = 0 ; j <rows_size ;j++){
|
|
tmp.push_back(rows[i]+cols[j]-colszero[j]-rowszero[i]);
|
|
}
|
|
rlt.push_back(tmp);
|
|
}
|
|
return rlt;
|
|
}
|
|
};
|
|
int main(){
|
|
Solution sol;
|
|
vector<int> ex1row1 = {0,1,1};
|
|
vector<int> ex1row2 = {1,0,1};
|
|
vector<int> ex1row3 = {0,0,1};
|
|
vector<vector<int> >ex1 = {ex1row1, ex1row2, ex1row3};
|
|
auto sol1 = sol.onesMinusZeros(ex1);
|
|
for(int i = 0 ; i < sol1.size();i++){
|
|
for(int j = 0 ; j < sol1[i].size(); j++){
|
|
cout<<sol1[i][j]<<' ';
|
|
}
|
|
cout<<endl;
|
|
}
|
|
return 0;
|
|
} |