題目:在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。數組
實現思路:因爲行列都爲遞增排序,因此能夠從左下角開始比較查詢,若目標值target大於該數,則將查詢位置右移,不然上移,便可達到查詢目的。函數
代碼:spa
1 #_*_coding:utf-8_*_ 2 3 class Solution: 4 # array 二維列表 5 def Find(self, target, array): 6 # write code here 7 m = len(array)-1 #當前行數,從零開始 8 n = len(array[0])-1 #獲取二維列表的列數 9 i = 0 #當前列數 10 while m>=0 and i<=n: 11 if array[m][i] > target: 12 m = m - 1 13 print m,i 14 elif array[m][i] < target: 15 i = i + 1 16 else: 17 return True 18 return False 19 20 solution = Solution() 21 array = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 22 target = 20 23 print solution.Find(target,array)