zoukankan      html  css  js  c++  java
  • 162. 矩阵归零

    162. 矩阵归零

    中文English

    给定一个m×n矩阵,如果一个元素是0,则将其所在行和列全部元素变成0。

    需要在原矩阵上完成操作。

    样例

    样例 1:

    输入:[[1,2],[0,3]]
    输出:[[0,2],[0,0]]
    

    样例 2:

    输入:[[1,2,3],[4,0,6],[7,8,9]]
    输出:[[1,0,3],[0,0,0],[7,0,9]]
    

    挑战

    你是否使用了额外的空间?
    一个直接的解决方案是使用 O(MN) 的额外空间,但这并不是一个好的方案。
    一个简单的改进方案是使用 O(M + N) 的额外空间,但这仍然不是最好的解决方案。
    你能想出一个常数空间的解决方案吗? 

    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param matrix: A lsit of lists of integers
        @return: nothing
        """
        '''
        大致思路:
        1.循环,得到所有为0的元素,初始化m_dic = [],n_dic = [],然后根据m和d进行置0,返回
        '''
        def  setZeroes(self, matrix):
            m_dic,n_dic = [],[]
            for i in range(len(matrix)):
                for j in range(len(matrix[0])):
                    if matrix[i][j] == 0:
                        m_dic.append(i)
                        n_dic.append(j)
            
            for m in m_dic:
                matrix[m] = [0]*len(matrix[0])
            
            for n in n_dic:
                for z in range(len(matrix)):
                    matrix[z][n] = 0
            return matrix
  • 相关阅读:
    Codeforces Round #360 B
    Codeforces Round #360 C
    Codeforces Round #360 D
    新姿势 树剖求LCA
    Codeforces 165D Beard Graph 边权树剖+树状数组
    hdu3966 树链剖分+线段树 裸题
    Codeforces Round #425 D
    Codeforces Round #425 B
    Codeforces Round #425 A
    bzoj 1036 树链剖分+线段树 裸题
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12864363.html
Copyright © 2011-2022 走看看