題目描述
在一個二維數(shù)組中鹅很,每一行都按照從左到右遞增的順序排序像吻,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù)勺爱,輸入這樣的一個二維數(shù)組和一個整數(shù)晃琳,判斷數(shù)組中是否含有該整數(shù)。
思路:
[1 2 8 9] 其中要尋找 7
[2 4 9 12] 從右上角開始,判斷其是否大于 7卫旱,大于則說明 7 只可能出現(xiàn)在前三列人灼,
[4 7 10 13] 如果小于則只可能出現(xiàn)在后三行
[6 8 11 15] 每次都只判斷右上角的值
具體代碼:
def find(target, array):
found = False
rows = len(array)
columns = len(array[0])
if rows>0 and columns>0:
row = 0
column = columns - 1
while row < rows and column >= 0:
if array[row][column] == target:
found = True
break
elif array[row][column] > target:
column -= 1
else:
row += 1
return found
def main():
test_martix = [[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
target = 7
found = find(target, test_martix)
if found:
print('Found the target!')
if __name__ == '__main__':
main()