给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
示例 1:
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]
示例 2:

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]] 输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]
- package TOP11_20;
-
- import java.util.HashSet;
- import java.util.Set;
-
- // 矩阵置零
- //给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
- // 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
- //输出:[[1,0,1],[0,0,0],[1,0,1]]
- public class Top18 {
- // 用两个hash表记录行和列为0的数据 然后再修改数组值
- public static void setZeroes(int[][] matrix) {
- Set colZeroSets = new HashSet();
- Set rowZeroSets = new HashSet();
- int row = matrix.length;
- int height = matrix[0].length;
- for (int i = 0; i < row; i++) {
- for (int j = 0; j < height; j++) {
- if (matrix[i][j] == 0) {
- colZeroSets.add(i);
- rowZeroSets.add(j);
- }
- }
- }
-
- for (int i = 0; i < row; i++) {
- for (int j = 0; j < height; j++) {
- if (colZeroSets.contains(i) || rowZeroSets.contains(j)) {
- matrix[i][i] = 0;
- }
- }
- }
- }
-
- // 直接用第一行和第一列 来记录,但先将第一行和第一列是否有为0的数据记录下来 然后再赋值,最后赋值第一行和第一列
- public static void setZeroes2(int[][] matrix) {
- int row = matrix.length;
- int height = matrix[0].length;
- boolean firstRowHasZero = false;
- boolean firstColHasZero = false;
- for(int i=0 ;i
|
- if(matrix[i][0] ==0)
- {
- firstRowHasZero = true;
- break;
- }
- }
- for(int j=0 ;j
- if(matrix[0][j] ==0)
- {
- firstColHasZero = true;
- break;
- }
- }
-
- for(int i =1;i
|
- for(int j=1;j
- if(matrix[i][j] ==0){
- matrix[i][0] =0;
- matrix[0][j] = 0;
- }
- }
- }
- for(int i = 1;i
|
- for(int j =1;j
- if(matrix[i][0] ==0 || matrix[0][j] ==0){
- matrix[i][j] =0;
- }
- }
- }
- if(firstRowHasZero) {
- for(int i=0 ;i
|
- matrix[i][0] =0;
- }
- }
- if(firstColHasZero) {
- for(int j=0 ;j
- matrix[0][j] =0;
- }
- }
- }
-
- public static void main(String[] args) {
- int[][] martirc = {{1,1,1},{1,0,1},{1,1,1}};
- setZeroes2(martirc);
- System.out.println("end");
- }
- }
-
相关阅读:
菜鸟、顺丰、京东物流:无“智”难行?
排序算法-----希尔排序
jmeter入门:接口压力测试全解析
1. 创建第一个harmonyos工程
QT基础入门——界面布局和常用控件(四)
计算机网络【HTTP请求构造与HTTPS】
xorm数据库操作之Join、Union
sql报错:sql injection violation, syntax error
利用cms主题构造木马(CVE-2022-26965)
Ubuntu 22.04 搭建 KubeSphere 3.4.1 集群
-
原文地址:https://blog.csdn.net/harryptter/article/details/133241128