Leetcode笔记4

73. 矩阵置零

set(C++)

  • 使用set存储带有0的行和列
class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        int m = matrix.size(), n = matrix[0].size();
        set<int> row;
        set<int> line;
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++){
                if(matrix[i][j] == 0){
                    row.insert(i);
                    line.insert(j);
                }
            }
        }
        
        set<int>::iterator it1;
        for(it1=row.begin();it1!=row.end();it1++)  //使用迭代器进行遍历   
        {  
            int x = *it1;  
            for(int j = 0; j < n; j++){
                matrix[x][j] = 0;
            }
        } 
        set<int>::iterator it2;
        for(it2=line.begin();it2!=line.end();it2++){
            int y = *it2;
            for(int i = 0; i < m; i++){
                matrix[i][y] = 0;
            }
        }
    }
};
  • 空间复杂度:O(m+n)
  • 时间复杂度:O(mn)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容