当前位置: 首页 > news >正文

【leetcode刷题日记】lc.73-矩阵置零

目录

1.题目

2.代码


1.题目

给定一个 m x n 的矩阵,如果一个元素为 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法

    示例 1:

    输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
    输出:[[1,0,1],[0,0,0],[1,0,1]]
    

    示例 2:

    输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
    输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]
    

    提示:

    • m == matrix.length
    • n == matrix[0].length
    • 1 <= m, n <= 200
    • -231 <= matrix[i][j] <= 231 - 1

    进阶:

    • 一个直观的解决方案是使用  O(mn) 的额外空间,但这并不是一个好的解决方案。
    • 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
    • 你能想出一个仅使用常量空间的解决方案吗?

    2.代码

    class Solution {
    public:void setZeroes(vector<vector<int>>& matrix) {int m = matrix.size();int n = matrix[0].size();std::vector<bool> rows(m, false);std::vector<bool> cols(n, false);// 记录哪些行和列中存在值为 0 的元素for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (matrix[i][j] == 0) {rows[i] = true;cols[j] = true;}}}// 根据记录的信息将相应的行和列置为 0for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (rows[i] || cols[j]) {matrix[i][j] = 0;}}}}
    };

    相关文章:

  • 一些有关ffmpeg 使用(1)
  • Z-Wave正通过自我革新,重塑在智能家居领域新定位
  • [FPGA基础] DMA
  • 0基础 | Proteus仿真 | 51单片机 | 继电器
  • MySQL的MVCC【学习笔记】
  • 01.oracle SQL基础
  • Django之旅:第七节--模版继承
  • IDEA配置将Servlet真正布署到Tomcat
  • Matplotlib高阶技术全景解析(续):动态交互、三维可视化与性能优化
  • 【初识Trae】字节跳动推出的下一代AI原生IDE,重新定义智能编程
  • 微服务架构在云原生后端的深度融合与实践路径
  • 图论---Kruskal(稀疏图)
  • PDFMathTranslate:基于LLM的PDF文档翻译及双语对照的工具【使用教程】
  • Spine 动画教程:皮肤制作
  • 深度学习笔记22-RNN心脏病预测(Tensorflow)
  • Azure Data Factory ETL设计与调度最佳实践
  • 【RedisLockRegistry】分布式锁
  • 抖音小程序开发常见问题与代码解决方案
  • 【N8N】Docker Desktop + WSL 安装过程(Docker Desktop - WSL update Failed解决方法)
  • 从StandardMaterial和PBRMaterial到PBRMetallicRoughnessMaterial:Babylon.js材质转换完全指南
  • 剪纸纹样“流动”在水乡,谁不忆江南
  • 共话城市自然之美,“微观黄浦”自媒体网络大V沙龙首场活动举行
  • 科克托是说真话的骗子,而毕加索是一言不发、让大家去猜的人
  • 为什么猛起身会头晕?你的身体在发出这个警报
  • 预订假期酒店却被告知无法入住,去哪儿:对违规酒店予以处罚
  • 搜索市场战火延伸:OpenAI虎视眈眈,欲收购谷歌浏览器