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
提交
取消