Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
answer:
class Solution {public: void setZeroes(vector<vector<int>>& matrix) { set<int> mSet; set<int> nSet; int m = matrix.size(); if(m == 0) return; int n = matrix[0].size(); for(int i = 0; i < m; i ++){ for(int j = 0; j < n; j ++){ if(matrix[i][j] == 0) { mSet.insert(i); nSet.insert(j); } } } if(mSet.size() == 0 && nSet.size() == 0) return; for(set<int>::iterator it = mSet.begin(); it != mSet.end(); it ++){ int temp = *it; for(int j = 0; j < n; j ++) matrix[temp][j] = 0; } for(set<int>::iterator it = nSet.begin(); it != nSet.end(); it ++){ int temp = *it; for(int j = 0; j < m; j ++) matrix[j][temp] = 0; } }};
新闻热点
疑难解答