找出一个4x4二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小(不会出现重复数字的情况)。可能没有鞍点。
时间: 2023-11-06 08:17:59 浏览: 21
假设给定的二维数组为 `arr`,我们可以按照以下步骤找到鞍点:
1. 对于每一行,找到该行的最大值及其列号。
2. 对于每一列,找到该列的最小值及其行号。
3. 遍历每个元素 `(i,j)`,如果 `arr[i][j]` 是其所在行的最大值,且是其所在列的最小值,则 `(i,j)` 是一个鞍点。
以下是一个 Python 代码实现:
```python
def find_saddle_point(arr):
rows, cols = len(arr), len(arr[0])
row_max = [max(row) for row in arr]
col_min = [min([arr[i][j] for i in range(rows)]) for j in range(cols)]
saddle_points = []
for i in range(rows):
for j in range(cols):
if arr[i][j] == row_max[i] and arr[i][j] == col_min[j]:
saddle_points.append((i,j))
return saddle_points if saddle_points else None
```
其中,`row_max` 是一个列表,存储每一行的最大值;`col_min` 是一个列表,存储每一列的最小值。最后,我们遍历每个元素,判断是否是鞍点,将所有的鞍点存储在列表 `saddle_points` 中返回。如果没有鞍点,返回 `None`。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)