【LeetCode】C# 73、Set Matrix Zeroes
来源:互联网 发布:淘宝管制刀具的定义为 编辑:程序博客网 时间:2024/06/06 17:31
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
给定矩阵,若某元素为0,则令该行该列为0。
思路一:先实例化一个新矩阵,把原矩阵中为0的个元素的行列设为1。
然后在遍历原矩阵,把temp矩阵中为一的元素清0。比较繁琐。
public class Solution { public void SetZeroes(int[,] matrix) { int m = matrix.GetLength(0); int n = matrix.Length / m; int[,] temp = new int[m,n]; for(int a = 0; a < m; a++) { for(int b = 0; b < n; b++) { if(matrix[a,b] == 0) { for(int c = 0; c < m; c++) { temp[c, b] = 1; } for (int d = 0; d < n; d++) { temp[a, d] = 1; } } } } for (int a = 0; a < m; a++) { for (int b = 0; b < n; b++) { matrix[a, b] *= 1 - temp[a, b]; } } }}
思路二 O(1):
先循环一次并把对应为0元素的第一行第一列对应元素置0。后面在遍历一次并依据第一行第一列某元素是否为0把对应该列该行置0。
public void setZeroes(int[,] matrix) { bool fr = false,fc = false; int m = matrix.GetLength(0); int n = matrix.Length/m; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { if(matrix[i,j] == 0) { if(i == 0) fr = true; if(j == 0) fc = true; matrix[0,j] = 0; matrix[i,0] = 0; } } } for(int i = 1; i < m; i++) { for(int j = 1; j < n; j++) { if(matrix[i,0] == 0 || matrix[0,j] == 0) { matrix[i,j] = 0; } } } if(fr) { for(int j = 0; j < n; j++) { matrix[0,j] = 0; } } if(fc) { for(int i = 0; i < m; i++) { matrix[i,0] = 0; } }}
阅读全文
0 0
- 【LeetCode】C# 73、Set Matrix Zeroes
- LeetCode 73: Set Matrix Zeroes
- LeetCode(73)Set Matrix Zeroes
- LeetCode 73 Set Matrix Zeroes
- [leetcode 73] Set Matrix Zeroes
- [LeetCode 73]Set Matrix Zeroes
- leetcode-73 Set Matrix Zeroes
- leetcode || 73、Set Matrix Zeroes
- Set Matrix Zeroes - LeetCode 73
- LeetCode---(73) Set Matrix Zeroes
- LeetCode(73) Set Matrix Zeroes
- Leetcode# 73 Set Matrix Zeroes
- leetcode 73: Set Matrix Zeroes
- Leetcode#73||Set Matrix Zeroes
- 【leetcode】【73】Set Matrix Zeroes
- 【LeetCode-73】Set Matrix Zeroes
- LeetCode 73 Set Matrix Zeroes
- Leetcode 73 Set Matrix Zeroes
- Linux-vsftp-userlist
- rip简单了解
- java常用第三方类库
- 上传头像
- 移动端自适应
- 【LeetCode】C# 73、Set Matrix Zeroes
- 在实习的公司遇到大量的无标签数据怎么办——利用SVM进行Active Learning主动学习
- NDK 开发(二,Android.mk梳理)
- 用JavaScript写一个简单的二级联动菜单
- 如何设置Scala的ide及配置ide
- Python Day9 :一个小练习
- 【假身份证】ASCII码协助判断身份证的真假
- php 数组操作
- tensorflow mnist入门