01 矩阵

作者: _阿南_ | 来源:发表于2020-04-15 10:48 被阅读0次

题目:

给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。

两个相邻元素间的距离为 1 。

示例 1:
输入:

0 0 0
0 1 0
0 0 0
输出:

0 0 0
0 1 0
0 0 0
示例 2:
输入:

0 0 0
0 1 0
1 1 1
输出:

0 0 0
0 1 0
1 2 1
注意:

给定矩阵的元素个数不超过 10000。
给定矩阵中至少有一个元素是 0。
矩阵中的元素只在四个方向上相邻: 上、下、左、右。

题目的理解:

创建一个容量一样的一个矩阵来保存距离,0的位置为0,0附近的距离为1,1附近的距离为2,直到所有的位置都计算完成。

python实现

from typing import List
class Solution:
    def updateMatrix(self, matrix: List[List[int]]) -> List[List[int]]:
        m = len(matrix)
        n = len(matrix[0])
        result = [[10000] * n for _ in range(m)]
        remain = list()
        
        for row in range(m):
            for column in range(n):
                if matrix[row][column] == 0:
                    result[row][column] = 0
                else:
                    remain.append((row, column))
        
        times = 0
        while len(remain) > 0:
            remainTemp = remain.copy()
            
            for row, column in remainTemp:
                for rowTemp, columnTemp in [(row, column - 1), (row + 1, column), (row, column + 1), (row - 1, column)]:
                    if 0 <= rowTemp < m and 0 <= columnTemp < n:
                        if result[rowTemp][columnTemp] == times:
                            result[row][column] = times + 1
                            remain.remove((row, column))
                            break
            
            times += 1
        
        return result

想看最优解法移步此处

提交

呵呵哒

现在看到中等难度的题目,会心一笑,So easy!!! 要提高,真的是要被逼一把啊。

相关文章

  • 01 矩阵

    给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1输...

  • 01 矩阵

    题目: 题目的理解: 创建一个容量一样的一个矩阵来保存距离,0的位置为0,0附近的距离为1,1附近的距离为2,直到...

  • 2019牛客第八场A题 (All-one Matrices) 单

    题意:给一个01矩阵,求其中极大全1子矩阵的个数,极大指的是这个矩阵不能再往扩展。 题解:枚举每个子矩阵的底边,维...

  • LeetCode 542. 01 矩阵

    542. 01 矩阵 题目来源:https://leetcode-cn.com/problems/01-matri...

  • LeetCode:01矩阵

    542. 01 矩阵 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为...

  • 01 Matrix

    题目来源给一个01矩阵,求矩阵中的1最近的0离它有多远,更新矩阵变为一个距离矩阵。我想着从左上到右下遍历一遍,从右...

  • Java(简单例子学习2)

    螺旋矩阵 import java.util.Scanner; public class oop01 { publi...

  • 542. 01 矩阵

    题目描述 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 ...

  • 542. 01矩阵

    题目描述 给定一个由0和1组成的矩阵,找出每个元素到最近0的距离,相邻元素间的距离为1。例如:输入 输出 注意: ...

  • LeetCode-01矩阵

    给定一个由0和1组成的矩阵,找出每个元素到最近的 0 的距离两个相邻元素间的距离为 1 。 快速浏览 超级原点 广...

网友评论

    本文标题:01 矩阵

    本文链接:https://www.haomeiwen.com/subject/xpbqvhtx.html