您的位置:首页 > 科技 > IT业 > 辽宁建设工程信息网官网盲盒系统_十堰网站优化排名_百度关键词搜索查询_株洲专业seo优化

辽宁建设工程信息网官网盲盒系统_十堰网站优化排名_百度关键词搜索查询_株洲专业seo优化

2025/4/29 3:58:42 来源:https://blog.csdn.net/un_fired/article/details/147499616  浏览:    关键词:辽宁建设工程信息网官网盲盒系统_十堰网站优化排名_百度关键词搜索查询_株洲专业seo优化
辽宁建设工程信息网官网盲盒系统_十堰网站优化排名_百度关键词搜索查询_株洲专业seo优化

目录

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;}}}}
    };

    版权声明:

    本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

    我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com