73.矩阵置零

Problem

leetcode链接problem
几步走吧。第一步把是0的情况的横纵坐标放在两个vector中,第二步是将vector中相同的情况删除以避免重复计算,第三步是把需要置零的行列置零。

Code

using namespace std;
class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        vector<int> m;
        vector<int> n;
        int m_length = matrix.size();
        int n_length = matrix[0].size();

        for(int i = 0;i< m_length;i++)
        {
            for(int j = 0;j < n_length;j++)
            {
                if(matrix[i][j] == 0)
                {
                    m.push_back(i);
                    n.push_back(j);
                }
            }
        }

        sort(m.begin(),m.end());
        m.erase(unique(m.begin(), m.end()), m.end());

        sort(n.begin(),n.end());
        n.erase(unique(n.begin(), n.end()), n.end());

        for(int i = 0;i < m.size();i++)
        {
            for(int j = 0;j < n_length;j++)
            {
                matrix[m[i]][j] = 0;
            }
        }

        for(int i = 0;i<n.size();i++)
        {
            for(int j = 0;j < m_length;j++)
            {
                matrix[j][n[i]] = 0;
            }
        }
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 准备开一个力扣解题的系列,督促自己每天刷题,就从今天开始。 原题 给定一个 m x n 的矩阵,如果一个元素为 0...
    健健_1e44阅读 414评论 0 0
  • 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。...
    youzhihua阅读 170评论 0 1
  • 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。...
    topshi阅读 456评论 0 6
  • 题目给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 示例...
    HITZGD阅读 297评论 0 0
  • 题目 难度:★★★☆☆类型:二维数组方法: 传送门 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行...
    玖月晴阅读 536评论 0 0