剑指offer-二维数组的查找
二维数组中的查找
http://www.nowcoder.com/questionTerminal/abc3fe2ce8e146608e868a70efebf62e
语法:Python
解题思路:矩阵中元素的搜索过程是从全局到局部,一般的思路是从左上角横向开始搜索。因为题目说明,矩阵中的元素一定是小于其右边和下边的元素的。所以为了缩小寻找范围,搜索的方向只能是一个方向越来越大,一个方向越来越小(满足这个要求的只有右上角和左下角,因为左上角开始搜索左右两边都比该元素大、右下角开始搜索左右两边都比该元素小)。所以不妨从右上角开始,当目前元素(用current表示)比target大的时候,往左边找;当目前元素current比target小的时候,往下边找。current就是当前区域的右上角元素。
循环的终点是col<0或row>row_num。
需要注意的是,python二维数组的维度信息:
- 可以通过array.shape()获得(x, y)
- 可以通过len(array)获得行数,len(array[0])获得列数