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
添加回答
举报
0/150
提交
取消