漫漫人生的翠色

导航

牛客-岛屿的数量

#题目描述
#给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。
#岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#
# 判断岛屿数量
# @param grid char字符型二维数组
# @return int整型
#
程序:
class Solution:
def solve(self , grid=[[]] ):
islands=[]
rows=len(grid)
cols=len(grid[0])
for i in range(rows):
for j in range(cols):
if grid[i][j]=='1' or grid[i][j]==1:
inisland=False
o=None
for k in range(len(islands)):
for l in islands[k]:
if abs(i-l[0])==1 and j==l[1] or abs(j-l[1])==1 and i==l[0]:
if inisland==False:
inisland=True
islands[k].append([i,j])
o=k
else:
islands[o].extend(islands[k])
islands[k]=[]
if inisland==False:
islands.append([[i,j]])
print(islands)
islandcount=0
for i in islands:
if i!=[]:
islandcount=islandcount+1
return islandcount



# write code here
s=[[1,1,0,0,0],
[1,0,1,0,1],
[1,0,0,0,1],
[1,0,1,0,1],
[1,1,1,1,1]]
a=Solution()
print(a.solve(s))

输出:

[[[0, 0]]]
[[[0, 0], [0, 1]]]
[[[0, 0], [0, 1], [1, 0]]]
[[[0, 0], [0, 1], [1, 0]], [[1, 2]]]
[[[0, 0], [0, 1], [1, 0]], [[1, 2]], [[1, 4]]]
[[[0, 0], [0, 1], [1, 0], [2, 0]], [[1, 2]], [[1, 4]]]
[[[0, 0], [0, 1], [1, 0], [2, 0]], [[1, 2]], [[1, 4], [2, 4]]]
[[[0, 0], [0, 1], [1, 0], [2, 0], [3, 0]], [[1, 2]], [[1, 4], [2, 4]]]
[[[0, 0], [0, 1], [1, 0], [2, 0], [3, 0]], [[1, 2]], [[1, 4], [2, 4]], [[3, 2]]]
[[[0, 0], [0, 1], [1, 0], [2, 0], [3, 0]], [[1, 2]], [[1, 4], [2, 4], [3, 4]], [[3, 2]]]
[[[0, 0], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0]], [[1, 2]], [[1, 4], [2, 4], [3, 4]], [[3, 2]]]
[[[0, 0], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0], [4, 1]], [[1, 2]], [[1, 4], [2, 4], [3, 4]], [[3, 2]]]
[[[0, 0], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0], [4, 1], [4, 2], [3, 2]], [[1, 2]], [[1, 4], [2, 4], [3, 4]], []]
[[[0, 0], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0], [4, 1], [4, 2], [3, 2], [4, 3]], [[1, 2]], [[1, 4], [2, 4], [3, 4]], []]
[[[0, 0], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0], [4, 1], [4, 2], [3, 2], [4, 3], [4, 4], [1, 4], [2, 4], [3, 4]], [[1, 2]], [], []]
2

答题结果:
超时!!!

有更好的方法吗?

请大牛指点


posted on 2020-09-23 20:01  漫漫人生的翠色  阅读(247)  评论(0编辑  收藏  举报