微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这个 BFS 和队列探索的距离是多少?

如何解决这个 BFS 和队列探索的距离是多少?

对于下面的代码,它是针对以下问题的解决方案:https://leetcode.com/problems/walls-and-gates/ 与 BFS 和队列相关

我的问题与以“for I,j in queue:”开头的行及其后的所有代码有关。我们在这里做什么?

我知道“for ii,jj in (i-1,j),(i,j-1),j+1),(i+1,j)”探讨了上面和下面的索引, 右边和左边。但我不明白我们为此做了什么——有什么帮助吗?

class Solution:
    def wallsAndGates(self,rooms: List[List[int]]) -> None:        
        m,n = len(rooms),len(rooms[0]) # dimensions              
        dist = 0
        queue = [(i,j) for i in range(m) for j in range(n) if rooms[i][j] == 0]   
                                                                               
        while queue:
            dist += 1
            newq = []
            for i,j in queue:                                                     
                for ii,j):              
                    if 0 <= ii < m and 0 <= jj < n and rooms[ii][jj] == 2147483647:
                        rooms[ii][jj] = dist
                         newq.append((ii,jj))
            queue = newq

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。