leetcode 73. 矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
进阶:
一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。
一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
你能想出一个仅使用常量空间的解决方案吗?
示例 1:
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]
解题思路
将需要变为0的行列,直接标记在第一行和第一列上,但是因为如果matrix[0][0]的位置为零,可能存在3种可能1.第一行中就出现了0元素 2.第一列出现了0元素 3.matrix[0][0]为零,因此需要用两个boolean值表示前两种情况
代码
class Solution {public void setZeroes(int[][] matrix) {int n=matrix.length,m=matrix[0].length;boolean row=false,col=false;for (int j = 0; j < m; j++)if(matrix[0][j]==0)row=true;for (int j = 0; j < n; j++)if(matrix[j][0]==0)col=true; for (int i = 1; i < n; i++) {for (int j = 1; j < m; j++) {if(matrix[i][j]==0){matrix[i][0]=0;matrix[0][j]=0;}}}for (int i = 1; i < n; i++) {if(matrix[i][0]==0)for (int j = 0; j < m; j++)matrix[i][j]=0;}for (int j = 1; j < m; j++)if(matrix[0][j]==0)for (int i = 0; i < n; i++)matrix[i][j]=0;if(row)for (int j = 0; j < m; j++)matrix[0][j]=0;if(col)for (int i = 0; i < n; i++)matrix[i][0]=0;}
}
leetcode 73. 矩阵置零相关推荐
- Java实现 LeetCode 73 矩阵置零
73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ...
- LeetCode 73. 矩阵置零(两个标记变量)
73. 矩阵置零 我们可以用矩阵的第一行和第一列作为两个标记数组,以达到 O(1)O(1) 的额外空间. 但这样会导致原数组的第一行和第一列被修改,无法记录它们是否原本包含 0.因此我们需要额外使用两 ...
- LeetCode 73矩阵置零74搜素二维矩阵75颜色分类
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
- leetcode 73 矩阵置零 Python
矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [[1,1,1],[1,0,1],[1,1,1] ] 输出: [ ...
- leetcode 73 矩阵置零 C++ 两种解法
leetcode 73 两种解法~~,没有一个是我想出来的,哈哈~~ one class Solution {public:void setZeroes(vector<vector<int ...
- Leetcode算法Java全解答--73. 矩阵置零
Leetcode算法Java全解答–73. 矩阵置零 文章目录 Leetcode算法Java全解答--73. 矩阵置零 题目 想法 结果 总结 代码 我的答案 大佬们的答案 测试用例 其他 题目 给定 ...
- leetcode(js)-每日一练之 矩阵置零 题库编号 73
leetcode(js)-每日一练之 矩阵置零 1.检查并标记第一行和第一列是否有0 (firstColHasZero和firstRowHasZero) 2.忽略第一行第一列,若其余行列含有0,将其所 ...
- C++矩阵置零---原地算法(附三种解法)
如题只要发现一个元素为0,那么它所在的行和列都要置零. 方法一:使用两个数组只要发现某个元素为0,就将这一行或这一列的头元素置true,然后再遍历矩阵,只要某个元素对应的行或列头元素为true,那么对 ...
- 矩阵置零—leetcode73
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [[1,1,1],[1,0,1],[1,1,1] ] 输出: [[1,0, ...
最新文章
- Word文档如何自动生成文献摘要?
- MYSQL交通系统查询,城市公交查询系统的设计与实现(SSH,MySQL)(含录像)
- C++之Lambda表达式
- Ubuntu18.04安装rabbitmq
- 电脑开机速度慢?新手试试以下这几个小技巧!
- tkinter使用cefpython库_Python3.7 tkinter中嵌入网页(WebView),需要引入cefpython3
- go grpc压缩_跟我学 gRPC—1. gRPC 及相关介绍
- 对PostgreSQL xmin的深入学习
- windows 网络编程大汇总
- 购物网站,网上购物系统,网上商城系统毕业设计
- 介绍Google Code Playground
- [十大谬论]常见的逻辑谬误与批判方法
- html可以使用文本修饰标记定义,HTML标记功能详述-网站首页.ppt
- python链式函数_python 链式
- SpringBoot使用之yaml配置注入(推荐使用)
- 重构--Introduce Parameter Object
- Drupal 常用模块汇总
- 色彩搭配速成!3个实用方法帮你全面搞定配色
- 跟领导谈加薪,聪明的员工都这么说
- Dagger2使用详解