返回列表的最低点,该列表由多个列表组成

时间:2018-11-11 01:12:18

标签: python python-3.x

def is_sink(m: List[List[int]], c: List[int]) -> bool:
    lowest_point = m[0][0]
    for i in range(len(m)):
        for j in range(len(m)):
            if m[i][j] < lowest_point:
                lowest_point = m[i][j]
    if c == lowest_point:
        return True
    else:
        return False
    """
    m = [[1,2,3],
         [2,3,3],
         [5,4,3]]
   >>> is_sink(m,[0,0])
        True
   >>> is_sink(m,[2,2])
        True
   >>> is_sink(m,[3,0])
        False

如果c是m中的最小值,我试图返回True。该代码不会显示true或false

2 个答案:

答案 0 :(得分:0)

我理解问题的方式:(a)c列表包含2个元素,并被解释为矩阵m的索引;并且(b)如果这些索引指定的值是其子列表中的最小值,则返回true。

def is_sink(m, c):
    ci, cj = c
    for i, xs in enumerate(m):
        mn = min(xs)
        try:
            if i == ci and mn == xs[cj]:
                return True
        except IndexError:
            pass
    return False

MATRIX = [
    [1, 2, 3],
    [2, 3, 3],
    [5, 4, 3],
]

print(is_sink(MATRIX, [0, 0]))  # True
print(is_sink(MATRIX, [2, 2]))  # True
print(is_sink(MATRIX, [3, 0]))  # False, because out of bounds
print(is_sink(MATRIX, [1, 0]))  # True

答案 1 :(得分:0)

您的代码将检查最低点,而不是该点是否为沉点。另外,我相信这是您的作业,您不应该在线获得帮助。到我办公室上班。