‘’’
某长方形停车场,每个车位上方都有对应监控器,当且仅当在当前车位或者前后左右四个方向任意一个车位范围停车时,监控器才需要打开:
给出某一时刻停车场的停车分布,请统计最少需要打开多少个监控器
输入描述
第一行输入m,n表示长宽,满足1 < m,n <= 20;
后面输入m行,每行有n个0或1的整数,整数间使用一个空格隔开,表示该行已停车情况,其中0表示空位,1表示已停:
输出描述
最少需要打开监控器的数量
示例1:
输入
3 3
0 0 0
0 1 0
0 0 0
输出
5
说明
中间1的位置上需要打开监视器,且其上下左右皆需要打开监视器,共5个。
思路
1:输入数据范围很小,直接遍历一把就行了
代码实现
input_param = [int(x) for x in input().split()]
m = input_param[0]
n = input_param[1]
matrix = []
for i in range(m):
matrix.append([int(x) for x in input().split()])
directions = [[-1, 0], [1, 0], [0, 1], [0, -1]]
result = 0
for x in range(m):
for y in range(n):
if (matrix[x][y] == 1):
result += 1
continue
for i in range(