leetcode 43: Set Matrix Zeroes
2013-01-18 09:36
417 查看
Given am xn matrix, if an element is 0, set its entire row and column to 0. Do it in place.
uncompleted
java version passed.
uncompleted
class Solution { public: void setZeroes(vector<vector<int> > &matrix) { // Start typing your C/C++ solution below // DO NOT write int main() function if( matrix.size() == 0 ) return; size_t row = matrix.size(); size_t col = matrix[0].size(); bool row_flag = false, col_flag = false; for( int i=0; i<row; i++) { if( matrix[i][0] == 0 ) { row_flag = true; } } for( int j=0; j<col; j++) { if( matrix[0][j] == 0 ) { col_flag = true; } } for( int i=1; i< row; i++) { for ( int j=1; j< col; j++) { if( matrix[i][j] == 0 ) { matrix[0][j] = 0; matrix[i][0] = 0; } } } for( int i=0; i<matrix.size(); i++) { if(matrix[i][0] == 0) { for( int j=1; j<matrix[0].size(); j++){ matrix[i][j] = 0; } } else if(row_flag) { matrix[i][0] = 0; } } for( int j=0; j<matrix[0].size(); j++) { if(matrix[0][j] == 0) { for( int i=1; i<matrix.size(); i++){ matrix[i][j] = 0; } } else if(col_flag) { matrix[0][j] = 0; } } } };
java version passed.
public class Solution { public void setZeroes(int[][] matrix) { // Start typing your Java solution below // DO NOT write main() function if(matrix==null || matrix[0]==null ) return; //if(matrix.length==1) return; [[0,1]] matrix is not square not rectangle. when u modify at one place may influence many. int m = matrix.length; int n = matrix[0].length; boolean firstRow = false; boolean firstCol = false; for(int j=0; j<n; j++) { if(matrix[0][j]==0) { firstRow = true; break; } } for(int i=0; i<m; i++) { if(matrix[i][0]==0) { firstCol = true; break; } } for(int i=1; i<m; i++) { for(int j=1; j<n; j++) { if(matrix[i][j] == 0) { matrix[0][j] = 0; matrix[i][0] = 0; } } } for(int i=1; i<m; i++) { for(int j=1; j<n; j++) { if(matrix[0][j]==0 || matrix[i][0]==0) { matrix[i][j]=0; } } } if(firstRow) { for(int j=0; j<n;j++) { matrix[0][j] = 0; } } if(firstCol) { for(int i=0; i<m; i++) { matrix[i][0] = 0; } } } }
相关文章推荐
- leetcode 43: Set Matrix Zeroes
- [LeetCode] 73. Set Matrix Zeroes
- 【leetcode】Set Matrix Zeroes
- LeetCode - 73 - Set Matrix Zeroes
- [Leetcode 73, medium] Set Matrix Zeroes
- 【LeetCode】Set Matrix Zeroes
- 【LeetCode-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】
- LeetCode(073) Set Matrix Zeroes (Java)
- [LeetCode] Set Matrix Zeroes
- leetcode Set Matrix Zeroes
- LeetCode -- Set Matrix Zeroes
- LeetCode73——Set Matrix Zeroes
- Leetcode:Set Matrix Zeroes
- [LeetCode] 100: Set Matrix Zeroes
- LeetCode 73 Set Matrix Zeroes
- leetcode_question_73 Set Matrix Zeroes
- Set Matrix Zeroes -- LeetCode
- [LeetCode]Set Matrix Zeroes
- 98_leetcode_set Matrix Zeroes
- Leetcode: 73. Set Matrix Zeroes(Week15, Medium)