博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode73. Set Matrix Zeroes(思路及python解法)
阅读量:2241 次
发布时间:2019-05-09

本文共 1586 字,大约阅读时间需要 5 分钟。

Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it .

Example 1:

Input: [  [1,1,1],  [1,0,1],  [1,1,1]]Output: [  [1,0,1],  [0,0,0],  [1,0,1]]

将0所在的行和列都重置为0。

第一想法比较简单,把所有0的所在行和所在列统计出来,然后将这些行和列设为0。当然这种方法时间复杂度很高。

这里学到np.argwhere()方法,能直接返回查找值所在行列。

class Solution:    def setZeroes(self, matrix: List[List[int]]) -> None:        """        Do not return anything, modify matrix in-place instead.        """        import numpy as np        rows=set()        cals=set()        m=np.matrix(matrix)        for r,c in np.argwhere(m==0):            rows.add(r)            cals.add(c)        for i in range(len(matrix)):            for j in range(len(matrix[0])):                if i in rows or j in cals:                    matrix[i][j]=0        return matrix

或者直接标记也很简单迅速。

就是在遍历过程中,把0所在的行和列都标记,最后再把所有标记的地方改为0。

class Solution:    def setZeroes(self, matrix: List[List[int]]) -> None:        """        Do not return anything, modify matrix in-place instead.        """        rows = len(matrix)        if(rows==0): return        cols = len(matrix[0])        for i in range(rows):            for j in range(cols):                if matrix[i][j] == 0:                    for row in range(rows):                        if matrix[row][j] != 0:                            matrix[row][j] = 'x'                    for col in range(cols):                        if matrix[i][col] != 0:                             matrix[i][col] = 'x'        for i in range(rows):            for j in range(cols):                if matrix[i][j] == 'x':                    matrix[i][j] = 0

 

转载地址:http://acrbb.baihongyu.com/

你可能感兴趣的文章
详解循环神经网络(Recurrent Neural Network)
查看>>
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>
用 Grid Search 对 SVM 进行调参
查看>>
用 Pipeline 将训练集参数重复应用到测试集
查看>>
PCA 的数学原理和可视化效果
查看>>
机器学习中常用评估指标汇总
查看>>
什么是 ROC AUC
查看>>
Bagging 简述
查看>>
详解 Stacking 的 python 实现
查看>>
简述极大似然估计
查看>>
用线性判别分析 LDA 降维
查看>>
用 Doc2Vec 得到文档/段落/句子的向量表达
查看>>
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>