力扣top100 矩阵置零

打印 上一主题 下一主题

主题 1985|帖子 1985|积分 5955


开发数组来标记元素为0的行和列,然后将对应的行和列的元素全部置为0;
  1. class Solution {
  2. public:
  3.     void setZeroes(vector<vector<int>>& matrix) {
  4.         int n = matrix.size();
  5.         int m = matrix[0].size();
  6.         vector<int> l(m),r(n);
  7.         for(int i = 0;i<n;i++){
  8.             for(int j =0;j<m;j++){
  9.                 if(matrix[i][j]==0) l[j]=r[i]=1;
  10.             }
  11.         }
  12.         for(int i = 0;i<n;i++){
  13.             for(int j =0;j<m;j++){
  14.                 if(r[i]||l[j])
  15.                     matrix[i][j]=0;
  16.             }      
  17.         }
  18.     }
  19. };
复制代码
时间复杂度:由于用了两层for循环以是是O(mn)
空间复杂度:开发了两个数组,是O(m+n)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我可以不吃啊

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表