赞
踩
题目:
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0], [1,0,1] ]
- 矩阵置0,要求常数空间
-
- //额外存储空间
- class Solution {
- public void setZeroes(int[][] matrix) {
- //行
- int R = matrix.length;
- //列
- int C = matrix[0].length;
- Set<Integer> rows = new HashSet<Integer>();
- Set<Integer> cols = new HashSet<Integer>();
-
- for (int i = 0; i < R; i++) {
- for (int j = 0; j < C; j++) {
- if (matrix[i][j] == 0) {
- //记下对应行和列
- rows.add(i);
- cols.add(j);
- }
- }
- }
-
- for (int i = 0; i < R; i++) {
- for (int j = 0; j < C; j++) {
- if (rows.contains(i) || cols.contains(j)) {
- matrix[i][j] = 0;
- }
- }
- }
-
- }
- }
-
- //O(1)空间的暴力
- class Solution {
- public void setZeroes(int[][] matrix) {
- int MODIFIED = -1000000;
- //行
- int R = matrix.length;
- //列
- int C = matrix[0].length;
-
- for (int r = 0; r < R; r++) {
- for (int c = 0; c < C; c++) {
- if (matrix[r][c] == 0) {
- for (int k = 0; k < C; k++) {
- if (matrix[r][k] != 0) {
- matrix[r][k] = MODIFIED;
- }
- }
- for (int k = 0; k < R; k++) {
- if (matrix[k][c] != 0) {
- matrix[k][c] = MODIFIED;
- }
- }
- }
- }
- }
-
- for (int r = 0; r < R; r++) {
- for (int c = 0; c < C; c++) {
- if (matrix[r][c] == MODIFIED) {
- matrix[r][c] = 0;
- }
- }
- }
-
- }
- }
-
- class Solution {
- public void setZeroes(int[][] matrix) {
- Boolean isCol = false;
- int R = matrix.length;
- int C = matrix[0].length;
-
- for (int i = 0; i < R; i++) {
- if (matrix[i][0] == 0) {
- isCol = true;
- }
-
- for (int j = 1; j < C; j++) {
- if (matrix[i][j] == 0) {
- matrix[0][j] = 0;
- matrix[i][0] = 0;
- }
- }
- }
-
- for (int i = 1; i < R; i++) {
- for (int j = 1; j < C; j++) {
- if (matrix[i][0] == 0 || matrix[0][j] == 0) {
- matrix[i][j] = 0;
- }
- }
- }
-
- if (matrix[0][0] == 0) {
- for (int j = 0; j < C; j++) {
- matrix[0][j] = 0;
- }
- }
-
- if (isCol) {
- for (int i = 0; i < R; i++) {
- matrix[i][0] = 0;
- }
- }
-
- }
- }
参考链接:https://leetcode-cn.com/problems/set-matrix-zeroes/solution/ju-zhen-zhi-ling-by-leetcode/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。