赞
踩
描述: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
示例 1:
输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0], [1,0,1] ]
解法一:没有使用原地算法,思路首先遍历矩阵,将元素为零的行和列各自记录到一个Set集合中,然后重新遍历矩阵,凡是在行和列Set集合重出现的,都进行置零。
代码如下:
- public void setZeroes(int[][] matrix) {
- if(matrix == null)
- return ;
- Set<Integer> row = new HashSet<>();
- Set<Integer> col = new HashSet<>();
-
- for(int i = 0; i<matrix.length; i++){
- for(int j = 0; j<matrix[i].length; j++){
- if(matrix[i][j] == 0){
- row.add(i);
- col.add(j);
- }
- }
- }
- for(int i = 0; i<matrix.lengt
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。