前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >力扣73.矩阵置零

力扣73.矩阵置零

作者头像
才浅Coding攻略
发布2022-12-12 17:02:49
1270
发布2022-12-12 17:02:49
举报
文章被收录于专栏:才浅coding攻略

阿巩

美好的清晨从一道算法开始

为了防止脑壳子生锈,之后也会陆续更新算法相关内容,范围是力扣简单和中等难度的题目。日拱一卒,让我们开始吧!

题目:给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用原地算法。

题解

拿到题目后最直观的思路是扫描两遍matrix,第一遍扫描并记录0的位置;第二遍把对应位置的所在行和列置0。这个解法是需要O(m+n)额外空间的,我们来实现下。

代码语言:javascript
复制
def setZeroes(matrix):
    row = len(matrix)  # 行
    col = len(matrix[0])  # 列
    zero_sets = []  # 存放为0的位置
    # 找0
    for i in range(row):
        for j in range(col):
            if matrix[i][j] == 0:
                zero_sets.append((i, j))  # 将找到的0以元组形式添加到列表中
    # 置0
    for k, v in zero_sets:
        for i in range(row):
            matrix[i][v] = 0  # 对应位置的列置0
        for j in range(col):
            matrix[k][j] = 0  # 对应位置的行置0

    return matrix


matrix = [[0, 1, 2, 0], [3, 4, 5, 2], [1, 3, 1, 5]]
print(setZeroes(matrix))
# 输出:[[0, 0, 0, 0], [0, 4, 5, 0], [0, 3, 1, 0]]
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 才浅coding攻略 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档