#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; }