leetcode1030
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的更多相关文章
- [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 & ...
随机推荐
- JavaScript的使用你知道几种?(上)
往期回顾 在上一期的<JavaScript的组成 | DOM/BOM>☜里,我们有对文档对象模型-DOM.浏览器对象模型-BOM 这两大部分进行了解学习,如果有还不是很明白的小伙伴们,可以 ...
- os、os.path模块(文件/目录方法)
1.模块的概念:模块是一个包含所有定义的变量.函数的文件,模块可以被其余模块调用. 2.利用OS模块实现对系统文件的. os模块中常见的方法: gercwd() 返回当前工作目录 chdir( ...
- git 本地分支和远程分支改名字
1.将本地分支进行改名: git branch -m old_branch new_branch 2.将本地分支的远程分支删除: git push origin :old_branch 3.将改名后的 ...
- PTA——黑洞数
PTA 7-44 黑洞数 我的程序,一个用例通不过 #include<stdio.h> void sort(int *a,int n); int main() { ; scanf(&quo ...
- 关于函数式编程(Functional Programming)
初学函数式编程,相信很多程序员兄弟们对于这个名字熟悉又陌生.函数,对于程序员来说并不陌生,编程对于程序员来说也并不陌生,但是函数式编程语言(Functional Programming languag ...
- Linq分组查询统计
这里介绍Linq使用Group By和Count得到每个CategoryID中产品的数量,Linq使用Group By和Count得到每个CategoryID中断货产品的数量等方面. 学经常会遇到Li ...
- 洋葱第4场C和D题解……
只是记录一下: 我们机房讨论的结果……(当然有一个au爷一开始就秒掉了……首先先n^2或随机枚举出一对点根据抽屉原理可得枚举(n/2)^2+1次后至少有一对点全是对的然后对于两个对的点,首先考虑缩放比 ...
- cookie mapping 原理理解
深入浅出理解 COOKIE MAPPING Cookie mapping技术 利用javascript跨域访问cookie之广告推广
- Python shelve 模块
使用json或者pickle持久化数据,能dump多次,但load的话只能取到最新的dump, 因为先前的数据已经被后面dump的数据覆盖掉了. 如果想要实现dump多次不被覆盖,就可以想到使用she ...
- 集合总结三(HashMap的实现原理)
一.概述 二话不说,一上来就点开源码,发现里面有一段介绍如下: Hash table based implementation of the Map interface. This implement ...