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
答案 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)
您的代码将检查最低点,而不是该点是否为沉点。另外,我相信这是您的作业,您不应该在线获得帮助。到我办公室上班。