知识点
给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。
例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8)。
list1 = [[11, 3, 5, 6, 9],
[12, 4, 7, 8, 10],
[10, 5, 6, 9, 11],
[8, 6, 4, 7, 2],
[15, 10, 11, 20, 25]]
为方便大家直接把这个矩阵写成列表了。
最后输出:
第4行,第1列,值为8,即从1开始计数。
代码部分如下:
list1 = [[11, 3, 5, 6, 9],
[12, 4, 7, 8, 10],
[10, 5, 6, 9, 11],
[8, 6, 4, 7, 2],
[15, 10, 11, 20, 25]]
for r in range(len(list1)):
c = list1[r].index(max(list1[r]))
k = 0
while k < len(list1):
if list1[r][c] <= list1[k][c]:
k += 1
if k == len(list1):
print('鞍点在第{}行,第{}列,值为:{}'.format(r + 1, c + 1, list1[r][c]))
else:
break
360截图1637062968117101.jpg
网友评论