某数如果大于等于该数上下左右这四个相邻的数,则称该数为二维情况下的高点,给定大小为n*n的二维数组,求任意一个局部高点
时间: 2024-11-30 18:18:23 浏览: 16
要找到一个二维数组中的局部高点(即周围四个元素都小于或等于它的元素),你可以使用Python的嵌套循环遍历数组,并检查每个位置是否满足条件。这里是一个简单的解决方案:
```python
def find_local_peaks(matrix):
n = len(matrix)
peaks = []
# 遍历矩阵
for i in range(1, n - 1): # 上下边界忽略
for j in range(1, n - 1): # 左右边界忽略
if matrix[i][j] >= matrix[i - 1][j] and matrix[i][j] >= matrix[i + 1][j] \
and matrix[i][j] >= matrix[i][j - 1] and matrix[i][j] >= matrix[i][j + 1]:
peaks.append((i, j)) # 存储坐标
return peaks
# 示例用法
matrix = [
[1, 4, 3],
[5, 8, 6],
[7, 9, 10]
]
peaks = find_local_peaks(matrix)
print("局部高点的位置:", peaks)
```
这个函数首先获取矩阵的尺寸`n`,然后遍历内部元素(排除边界)。对于每个元素,我们检查它是否大于等于其左、右、上、下方的邻居。如果是,我们就将其坐标添加到`peaks`列表中。
阅读全文