求二维数组的山顶元素
时间: 2024-10-29 10:12:11 浏览: 10
计算二维数组周边元素之和
在二维数组中寻找“山顶”元素,通常是指找到那个元素值比周围四个相邻元素都大的点,就像一个地形图上的山峰。这个过程也被称为寻找局部最大值。这种查找可以使用常见的算法,如广度优先搜索(BFS)或深度优先搜索(DFS),以及一些优化技巧。
以下是一个简单的Python示例,使用DFS来找出二维数组中的山顶元素:
```python
def find_peaks(matrix):
m, n = len(matrix), len(matrix[0])
peaks = []
def dfs(i, j):
if i < 0 or j < 0 or i >= m or j >= n or matrix[i][j] <= matrix[i-1][j-1]:
return
peaks.append((i, j))
dfs(i+1, j) # 右
dfs(i-1, j) # 左
dfs(i, j+1) # 下
dfs(i, j-1) # 上
for i in range(m):
for j in range(n):
dfs(i, j)
return peaks
# 示例
matrix = [[1, 4, 7, 3], [8, 9, 2, 6], [5, 3, 5, 1]]
peaks = find_peaks(matrix)
print("山顶元素坐标:", peaks)
```
阅读全文