題目:在一個二維數組中(每一個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。數組
思路:本題中的二維數組從左到右,從上到下依次遞增,即每一行的最後一個數字爲最大,每一列的最下數字爲最大。函數
在查找過程當中總共分爲兩種狀況:blog
一、查找數字小於比較數字,說明查找數字在比較數字的左邊排序
二、查找數字大於比較數字,說明查找數字在比較數字的下邊get
以查找7爲例:io
代碼:class
import timeclass Solution: def find(self,target,array): ''' :param target: 查找目標數字 :param array: 傳入列表 :return: 0/1 ''' arrlen = len(array)#列表長度,肯定行數 col = len(array[0])-1#肯定一行中最大列數 if arrlen>0 and col>1:#判斷矩陣 row = 0 while row <arrlen and col >=0:#循環終止條件 if array[row][col] <target:#若是目標數大於矩陣中的數 row = row+1 elif array[row][col] >target: col = col - 1 else: return True return False else: return False