📅  最后修改于: 2023-12-03 15:23:35.642000             🧑  作者: Mango
本文将介绍如何在一个二维矩阵中找到所有的安全细胞。安全细胞的定义为:该细胞周围的8个相邻细胞中,没有任何一个细胞的值大于该细胞的值。
def find_safe_cells(matrix):
"""
在矩阵中查找安全细胞
:param matrix: 二维矩阵
:return: 安全细胞列表
"""
safe_cells = []
rows = len(matrix)
cols = len(matrix[0])
for i in range(rows):
for j in range(cols):
is_safe = True
for m in range(max(0, i-1), min(rows, i+2)):
for n in range(max(0, j-1), min(cols, j+2)):
if matrix[m][n] > matrix[i][j]:
is_safe = False
break
if not is_safe:
break
if is_safe:
safe_cells.append((i, j))
return safe_cells
使用示例:
matrix = [
[1, 2, 1],
[1, 3, 2],
[3, 2, 1]
]
safe_cells = find_safe_cells(matrix)
print(safe_cells) # [(0, 0), (0, 2), (2, 2)]
以上是一个简单的实现,可以根据需要进行优化。