11.16 华为OD机考编程丨Python语言算法真题

11.16 华为OD机考编程丨Python语言算法真题

华为OD机考邮件通知

题目1



 

11.16 华为OD机考编程丨Python语言算法真题

参考答案:

n, m = [int(i) for i in input().split()]

list = []
for i in range(n):
list.append([int(i) for i in input().split()])

def numIslands(grid) -> int:
def dfs(grid, i, j):
if not 0 <= i < len(grid) or not 0 <= j < len(grid[0]) or grid[i][j] == 0: return
grid[i][j] = 0
dfs(grid, i + 1, j)
dfs(grid, i-1, j-1)
dfs(grid, i-1, j+1)
dfs(grid, i, j + 1)
dfs(grid, i - 1, j)
dfs(grid, i, j - 1)
dfs(grid, i+1, j-1)
dfs(grid, i+1, j+1)
count = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] == 1:
dfs(grid, i, j)
count += 1
return count

ans = numIslands(list)
print(ans) #华为机考 #华为OD #华为od
#华为od招聘 #互联网大厂算法 #大厂算法 #华为算法 #华为编程语言 #Python #编程

互联网求职达人,热心分享互联网招聘经验~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值