LeetCode 73. Set Matrix Zeroes
LeetCode 73. Set Matrix Zeroes
Solution1:我的答案
比较笨,算法时间复杂度是O(mn)O(mn)O(mn),占用额外空间是O(m+n)O(m+n)O(m+n)
class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {if(matrix.size() * matrix[0].size() == 0)return;vector<int> row; //某行有0则为truevector<int> col; //某列有0则为truefor (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[0].size(); j++) {if (matrix[i][j] == 0) {if(find(row.begin(), row.end(), i) == row.end())row.push_back(i);if(find(col.begin(), col.end(), j) == col.end())col.push_back(j);}}}for (int i = 0; i < row.size(); i++) for (int j = 0; j < matrix[i].size(); j++)matrix[row[i]][j] = 0;for (int j = 0; j < col.size(); j++) for (int i = 0; i < matrix.size(); i++)matrix[i][col[j]] = 0;return;}
};
Solution2:空间复杂度优化
利用第一行第一列做记录
比较笨,算法时间复杂度是O(mn)O(mn)O(mn),占用额外空间是O(1)O(1)O(1)
class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int m = matrix.size(), n = matrix[0].size();bool row_zero = false, col_zero = false;for (int i = 0; i < n; i++) {if (matrix[0][i] == 0) {row_zero = true;break;} }for (int i = 0; i < m; i++) {if (matrix[i][0] == 0) {col_zero = true;break;} }for (int i = 1; i < m; i++) { for (int j = 1; j < n; j++) {if (matrix[i][j] == 0) {matrix[i][0] = 0;matrix[0][j] = 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 (row_zero) {for (int i = 0; i < n; i++)matrix[0][i] = 0;}if (col_zero) {for (int i = 0; i < m; i++)matrix[i][0] = 0;}return;}
};
LeetCode 73. Set Matrix Zeroes相关推荐
- LeetCode (73): Set Matrix Zeroes
链接: https://leetcode.com/problems/set-matrix-zeroes/ [描述] Given a m x n matrix, if an element is 0, ...
- 【leetcode】Set Matrix Zeroes(middle)
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. 思路:不能用 ...
- leetcode 73 矩阵置零 C++ 两种解法
leetcode 73 两种解法~~,没有一个是我想出来的,哈哈~~ one class Solution {public:void setZeroes(vector<vector<int ...
- [东哥的leetcode刷题日记] leetcode 283 : Move Zeroes
leetcode 283 : Move Zeroes 题目链接: https://leetcode-cn.com/problems/move-zeroes/ 难度: 简单 归类 : 数组操作 题目: ...
- LeetCode 59 Spiral Matrix II(螺旋矩阵II)(Array)
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/5214 ...
- Set Matrix Zeroes
Set Matrix Zeroes Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do i ...
- LeetCode 474. Ones and Zeroes 动态规划解法+拓展
问题来源 此题来源于LeetCode 474. Ones and Zeroes 在写这篇之前,我百度了一下这道题,发现已经有很多人写过这个问题了,然而大多数只是为了答题而答题,给出了代码,很少有文字解 ...
- LeetCode: 868. Transpose Matrix
LeetCode: 868. Transpose Matrix 题目描述 Given a matrix A, return the transpose of A. The transpose of a ...
- LeetCode 172. Factorial Trailing Zeroes
LeetCode 172. Factorial Trailing Zeroes 问题来源LeetCode 172. Factorial Trailing Zeroes 问题描述 Given an in ...
最新文章
- 合并表格,并实现对datatable的group by 功能
- 数据结构-二叉排序树
- Java EE 8 MVC:使用bean参数
- java后端做教育视频网站源码_【Java并发面试点】看这一篇应该是够了
- Ajax网络超时和和网络异常
- 华为access、trunk、hybird接口从tag和untag进行了解。
- 贴片电阻各种封装规格及阻值标注方法
- _initialize() 区别 __construct()
- 不要因为错爱而寂寞一生
- L5 Limits and Continuity
- 如何关闭计算机自动关机设置方法,电脑自动关机怎么设置(自动关机设置及取消方...
- npm install报错214 verbose node v14.15.0 215 verbose npm v7.23.0
- LeaRun快速开发平台,快速开发.net/java项目
- 力扣简单题合集(带答案)
- 题解 [SP4354][AcWing137]TWINSNOW - Snowflakes/雪花雪花雪花
- Qt 之 中英文切换的使用
- 盘点程序员逃离一线的Plan B
- js中call 的使用, call方法的继承
- 1.1 Java基础(一)概述
- mysql 谓语提前_表语谓语提前是什么倒装把这两种提前是部分倒装还是完全倒装,还是别的什么倒装?请问...
热门文章
- Xfire的aegis绑定方式配置小结
- 迭代近邻算法Iterative Closest Point, ICP
- Factory Pattern工厂模式
- select 实现类似多线程_linux进程通信--socket套接字(四)--多路IO转实现一个server对应多个client...
- linux session 设置时间设置,设置linux系统history相关变量,命令时间、保存history条数,多session共享history...
- 通过CMD命令行获取文件夹下的所有文件名称(电脑小白专用)
- php admin_priv,ECshop后台开发模块步骤
- mysql表索引类型修改_MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结...
- 高中计算机竞赛教案,信息技术教学案例评比——选择排序的算法实现(金华第一中学)...
- octave与matlab语法,Octave与Matlab