给定一个n*m矩阵,请先找出m个该矩阵中每列元素的最大值,然后输出这m个值中的最小
时间: 2023-08-29 15:02:29 浏览: 286
首先,我们可以遍历这个 n*m 矩阵的每一列,得到每一列的最大值。然后,我们将这 m 个最大值排序,找到其中的最小值。
具体的步骤如下:
1. 定义一个长度为 m 的数组 columnMax,以保存每一列的最大值。
2. 对于每一列 j,遍历矩阵的每一行 i,找到第 j 列的最大值,并保存在 columnMax[j] 中。
a. 初始化列最大值为矩阵第一行的元素:columnMax[j] = matrix[0][j]。
b. 从第二行开始遍历,若 matrix[i][j] 大于 columnMax[j],则更新 columnMax[j] 的值为 matrix[i][j]。
3. 对 columnMax 数组进行排序,得到有序的最大值列表。
4. 输出最大值列表中的最小值,即 columnMax 数组的第一个元素。
以下是对应于以上步骤的 Python 代码示例:
```python
import numpy as np
def findMinOfMax(matrix):
n, m = len(matrix), len(matrix[0])
columnMax = [0] * m # 初始化长度为 m 的列最大值列表
for j in range(m):
columnMax[j] = matrix[0][j] # 初始化为第一行的元素
for i in range(1, n): # 从第二行开始遍历
if matrix[i][j] > columnMax[j]:
columnMax[j] = matrix[i][j] # 更新列最大值
columnMax.sort() # 对列最大值列表进行排序
return columnMax[0] # 返回最小值
# 示例矩阵
matrix = np.array([[1, 2, 3], [4, 5, 6], [0, 8, 9]]).tolist()
# 输出最终结果
print(findMinOfMax(matrix))
```
以上代码会输出最后的结果。如果你想尝试不同的矩阵,请修改 `matrix` 的值。
阅读全文