Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
Follow up:
Did you use extra space?
A straight forward solution using O(mn) space is probably a bad idea.
A simple improvement uses O(m + n) space, but still not the best solution.
Could you devise a constant space solution?
void setZeroes(vector<vector<int>>& matrix) { int m = matrix.size(), n = matrix[0].size(); vector<bool> clearRow(m), clearCol(n); for(int i=0; i<m; i++) { for(int j=0; j<n; j++){ if(!matrix[i][j]) { clearRow[i] = true; clearCol[j] = true; } } } for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { if(clearRow[i] || clearCol[j]) { matrix[i][j] = 0;; } } } }
Space Complexity: O(M+N).
void setZeroes(vector<vector<int>>& matrix) { int m = matrix.size(), n = matrix[0].size(); bool clear1stRow = false, clear1stCol = false; for(int i=0; i<m; i++) { if(!matrix[i][0]) { clear1stCol = true; break; } } for(int j=0; j<n; j++){ if(!matrix[0][j]) { clear1stRow = true; break; } } for(int i=1; i<m; i++) { for(int j=1; j<n; j++) { if(!matrix[i][j]) { 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] || !matrix[0][j]) { matrix[i][j] = 0; } } } if(clear1stRow) { matrix[0].assign(n,0); } if(clear1stCol) { for(int i=0; i<m; i++) { matrix[i][0] = 0; } } }
Space Complexity: O(1)
相关推荐
java java_leetcode-73-set-matrix-zeroes
javascript js_leetcode题解之73-set-matrix-zeroes.js
c语言入门 C语言_leetcode题解之73-set-matrix-zeroes.c
《LeetCode---C++实现》是一本专注于C++编程语言解决LeetCode在线判题平台上的算法问题的书籍。LeetCode是程序员广泛使用的平台,它提供了大量的编程题目来提升编程技能和算法理解,尤其对于准备面试的程序员来说,...
1. leetCode-126-Word-LadderII.md:这涉及到第126题,词梯问题,通常是一个字符串转换问题,目标是找到两个单词之间的最短转换序列,每次只改变一个字母。 2. leetcode-224-Basic-Calculator.md:这是第224题,基础...
leetcode-cli-plugins leetcode-cli 的第 3 方插件。 什么是 如何使用 如何使用 插件 名称 描述 增强的命令 按公司或标签过滤问题 list 不要在同一台计算机上使 Chrome 的会话过期 login 不要在同一台计算机上使 ...
哈希表 - LeetCode刷题 - 题解
LeetCode 101 - A Grinding Guide.pdf
python python_leetcode题解之073_Set_Matrix_Zeroes
leetcode-cli 一个享受 leetcode 的高效 cli 工具! 非常感谢 leetcode.com,一个非常棒的网站! ⦙⦙⦙⦙⦙⦙⦙⦙ 一个很打问题的方法。 问题来缓解离线思考。 编码前的源代码。 居住和与 leetcode.com。 下载你...
这个名为"LeetCode-Code-Set"的压缩包文件很可能是某位开发者或学习者整理的他们在LeetCode上练习的题目解决方案集合。在这个代码集中,我们可以期待找到多种编程语言(如Python、Java、C++等)的代码实现,覆盖了...
不会LeetCode_645--Set-Mismatch 集合 S 最初包含从 1 到 n 的数字。 但不幸的是,由于数据错误,集合中的一个数字与集合中的另一个数字重复,导致一个数字重复而另一个数字丢失。 给定一个数组 nums 表示该集合在...
c c语言_leetcode题解之0073_set_matrix_zeroes.zip
leetcode-cli 注意:这个存储库是为了临时使用而分叉的。 注意:从 webbrowser 复制 cookie 并使用leetcode user -c可以临时修复不能。 一个享受 leetcode 的高效 cli 工具! 非常感谢 leetcode.com,一个非常棒的...
这个压缩包“leetcode--python”显然包含了与LeetCode相关的Python解题代码,可能是一个开源项目,用于存储用户或社区成员解决LeetCode问题的Python实现。 **LeetCode概述** LeetCode提供了一系列的算法和数据结构...
leetcode26 algo 算法与数据结构,练习代码 语言:java 8 开发工具:vscode,安装插件Java Extension Pack vscode有智能提示,可调试,有重构支持,满足代码练习要求,相比IDEA更轻量级,普通笔记本即可流畅运行。 ...
leetcode 答案Leetcode---算法 我对 Leetcode 算法问题的回答
leetcode 接口 该项目可帮助您使用首选的 IDE 或带有命令行界面 (CLI) 的编辑器来执行 leetcode。 入门 先决条件 Windows 10、MacOS、Linux Chrome版 >=90.0.4430 安装 # Prepare your virtual environment conda ...
leetcode-machine-swift :SOS_button: 请帮助在Sources/leetcode-machine-swift/leetcode.swift设置所有 leetcode 问题。 :SOS_button: 在 swift 编码时有 xcode 总是好的。 利用自动补全、类型检查...功能可以帮助...
leetcode-cli 一个享受 leetcode 的高效 cli 工具! 非常感谢 leetcode.com,一个非常棒的网站! ⦙⦙⦙⦙⦙⦙⦙⦙ 一个很打问题的方法。 问题来缓解离线思考。 编码前的源代码。 居住和与 leetcode.com。 下载你...