【second】Set Matrix Zeroes
void setZeroes(vector<vector<int> > &matrix) { // Note: The Solution object is instantiated only once and is reused by each test case. if(matrix.empty()) return; int m = matrix.size(); int n = matrix[0].size(); bool first_row,first_col; first_row = first_col = false; int i,j; for(j=0;j<n;j++) { if(matrix[0][j]==0) { first_row = true; break; } } for(i=0;i<m;i++) { if(matrix[i][0]==0) { first_col = true; break; } } for(i=1;i<m;i++) { for(j=1;j<n;j++) { if(matrix[i][j]==0) matrix[i][0] = matrix[0][j] = 0; } } for(j=1;j<n;j++) { if(matrix[0][j]==0) { for(i=1;i<m;i++) matrix[i][j] = 0; } } for(i=1;i<m;i++) { if(matrix[i][0]==0) { for(j=1;j<n;j++) matrix[i][j] = 0; } } if(first_row) { for(j=0;j<n;j++) matrix[0][j] = 0; } if(first_col) { for(i=0;i<m;i++) matrix[i][0] = 0; } }