class Solution(object):
def __init__(self):
self.List = list() def bfs(self,R,C,S,V):
T = list()
while len(S) >0:
node = S.pop(0)
if node[0]-1>=0 and V[node[0]-1][node[1]] == 0:
V[node[0]-1][node[1]] = 1
T.append([node[0]-1,node[1]])
self.List.append([node[0]-1,node[1]])
if node[0]+1<R and V[node[0]+1][node[1]] == 0:
V[node[0]+1][node[1]] = 1
T.append([node[0]+1,node[1]])
self.List.append([node[0]+1,node[1]])
if node[1]-1>=0 and V[node[0]][node[1]-1] == 0:
V[node[0]][node[1]-1] = 1
T.append([node[0],node[1]-1])
self.List.append([node[0],node[1]-1])
if node[1]+1<C and V[node[0]][node[1]+1] == 0:
V[node[0]][node[1]+1] = 1
T.append([node[0],node[1]+1])
self.List.append([node[0],node[1]+1])
if len(T)>0:
self.bfs(R,C,T,V) def allCellsDistOrder(self, R: int, C: int, r0: int, c0: int) -> 'List[List[int]]':
stack = list()
visited = [[0 for col in range(C)] for row in range(R)]
stack.append([r0,c0])
visited[r0][c0] = 1
self.List.append([r0,c0])
self.bfs(R,C,stack,visited)
return self.List

典型的BFS算法,每一“层”都比前一层的距离多1,因此按层遍历的顺序,即为所求。

leetcode1030的更多相关文章

  1. [Swift]LeetCode1030. 距离顺序排列矩阵单元格 | Matrix Cells in Distance Order

    We are given a matrix with R rows and C columns has cells with integer coordinates (r, c), where 0 & ...

随机推荐

  1. Delphi 10.3.1 Secure File Sharing解决应用间文件共享

    Delphi 10.3.1 为Android项目提供了Secure File Sharing选择项,默认是False.这一项是设置什么呢? 原来,Android 7及以后的版本,为了加强OS的安全性, ...

  2. 使用ssh免密登录

    在开发中经常会遇到远程登录服务器,要经常输入密码.有时密码太复杂记不住,还需要保存到本地文件中. 可以使用ssh命令,配置密钥登录,这样就不需要输入密码,一劳永逸,何乐而不为 ^--^ 配置密钥只需要 ...

  3. 初见 fultter for MAC

    第一步:下载flutter https://flutter.io/docs/development/tools/sdk/archive?tab=macos#macos 第二步:(development ...

  4. C#词频统计 效能分析

    在邹老师的效能分析的建议下对上次写过的词频统计的程序进行分析改进. 效能分析:个人很浅显的认为就是程序的运行效率,代码的执行效率 1.VS 提供了自带的分析工具:performance tool (性 ...

  5. day04列表

    列表 内容详细 1.列表 公共 独有方法 删除 remove pop clear del区别 强制转换 #表示多个事物 users=["lili","Joe", ...

  6. .Net调用Java带验证的WebService解决方法

    最近遇到了一个问题,需要通过验证用户名.密码去调用对方Java给出的WebService接口. 搜索了很多资料,没想到最终很简单就完了.... (捂脸 第一步:添加web引用 第二步:进行验证,并完成 ...

  7. PythonStudy——字符编码 Character Encoding

    测试一下学习字符编码的问题:解决乱码问题 数据 从 硬盘 => 内存 => cpu应用程序打开文本文件的三步骤1.打开应用程序2.将数据加载到内存中3.cpu将内存中的数据直接翻译成字符显 ...

  8. Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

    To fix it, just kill the apt process. ps -aux | grep -i apt sudo kill -9 "the process ID"

  9. 深入理解CSS系列(一):理解CSS的盒子模型

    接触前端也有好几个年头了,但是,讲实话,对于CSS的理解真的是不敢恭维,相信很多同行也有类似的感受吧!这是为什么呢?因为我们都认为CSS太简单了,没有必要深入学习,果真如此?其实,只不过是自己图样图森 ...

  10. Docker修改本地镜像与容器的存储位置

    这个方法里将通过软连接来实现. 首先停掉Docker服务: systemctl restart docker或者service docker stop 然后移动整个/var/lib/docker目录到 ...