为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

凤凰求蛊 2021-08-14 16:46:39
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 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

我理解这个问题的方式:(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


查看完整回答
反对 回复 2021-08-14
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

您的代码检查最低点,而不是该点是否为汇。另外,我相信这是您的功课,您不应该在网上获得帮助。来我的办公时间。


查看完整回答
反对 回复 2021-08-14
  • 2 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信