def find_local_sink(m: List[List[int]], start: List[int]) -> List[int]: """ Examples >>> m = [[ 5,70,71,80], [50, 4,30,90], [60, 3,35,95], [10,72, 2, 1]] >>> find_local_sink(m, [0,0]) [3,3] >>> m = [[ 5,70,71,80], [50, 4, 5,90], [60, 3,35, 2], [ 1,72, 6, 3]] >>> find_local_sink(m, [0,3]) [2,3] >>> m = [[9,2,3], [6,1,7], [5,4,8]] >>> find_local_sink(m, [1,1]) [1,1] """ 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] print(lowest_point) return find_local_sink給出一個列表或點。我想返回下一個最低點。我試圖弄清楚如何做到這一點。許多文檔字符串是測試用例,以顯示所需的意圖。問題是它不返回下一個最小的項目,而是返回整體最小的項目。所有它不返回索引,而只返回值
1 回答

婷婷同學_
TA貢獻1844條經驗 獲得超8個贊
您的代碼不使用該start參數,這就是它打印總體最小值的原因。更改for-loops 中的范圍以使用start的元素作為起始值。此外,lowest_point如果您需要該值,該函數應該返回;如果您需要索引使用額外的變量來跟蹤它們:
def find_local_sink(m, start):
lowest_point = m[start[0]][start[1]]
lowest_index = [[start[0], start[1]]
for i in range(start[0], len(m)):
for j in range(start[1], len(m)):
if m[i][j] < lowest_point:
lowest_point = m[i][j]
lowest_index = [i, j]
return lowest_index # or: return lowest_point
添加回答
舉報
0/150
提交
取消