01-二維數組中的查找

1題目:在一個二維數組中(每一個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。數組

2思路:首先選取數組中右上角的數字。若是該數字等於要查找的數字,查找過程結束;若是該數字大於要查找的數組,剔除這個數字所在的列;若是該數字小於要查找的數字,剔除這個數字所在的行。也就是說若是要查找的數字不在數組的右上角,則每一次都在數組的查找範圍中剔除一行或者一列,這樣每一步均可以縮小查找的範圍,直到找到要查找的數字,或者查找範圍爲空。函數

3代碼:spa

 1 # -*- coding:utf-8 -*-
 2 class Solution:
 3     # array 二維列表
 4     def Find(self, target, array):
 5         # write code here
 6         rows = len(array)
 7         cols = len(array[0])
 8         
 9         if rows > 0 and cols > 0:
10             row = 0
11             col = cols - 1
12             while row < rows and col >= 0:
13                 if target == array[row][col]:
14                     return True
15                 elif target < array[row][col]:
16                     col -= 1
17                 else:
18                     row += 1
19         return False

 4 牛客網刷題平臺:https://www.nowcoder.com/ta/coding-interviewscode

相關文章
相關標籤/搜索