首页 > 解决方案 > 用于查找最大值的嵌套 For 循环

问题描述

我正在学习如何使用嵌套循环。我需要找到“nx n”矩阵的最大值的位置,并且我知道我需要包含一个条件语句,一旦最大值被确认,就停止嵌套的 for 循环。到目前为止,我设法编写了一个嵌套循环,该循环遍历矩阵的每一行和每一列以输出其最终位置。

为了找到矩阵的最大值,我知道一种可能的方法是使用:

max(sum(matrix, []))

但是,我不完全确定在哪里放置这个条件来返回我正在寻找的东西。

标签: python

解决方案


当你这样做时for i in range(n)i会在循环的每次迭代中自行增加。你不需要增加它。

以下是遍历矩阵的方法:

n = len(matrix)
for i in range(n):
    for j in range(n):
        print('position ({}, {}) in matrix: {}'.format(i, j, n[i][j]))

因此,要找到最大值的位置,您可以跟踪迄今为止看到的最大值以及该值的位置,如下所示:

n = len(matrix)
max_value = float('-inf')
max_position = None
for i in range(n):
    for j in range(n):
        value = n[i][j]
        if value > max_value:
            max_value = value
            max_position = (i, j)
print('max value is {} at position ({}, {})'.format(
    max_value,
    max_position[0],
    max_position[1]
))

推荐阅读