本文共 754 字,大约阅读时间需要 2 分钟。
1、题目描述:
2、思路:
题目类似二分排序,但注意:数组本身的规律,按照二分排序比大小选择目标的规律,可以从左下角开始,如果array[i][j]大于target则往上移动,小于则往右移动,需要注意不能越界。因此就是找规律二分排序!
3、代码示例
# -*- coding:utf-8 -*-class Solution: # array 二维列表 def Find(self, target, array): #获得数组的列数和行数 # write code here row = len(array)-1 ##行数 col = len(array[0])-1 ##列数 i = row j = 0 while j<=col and i>=0: ##从左下角开始查找 if target < array[i][j]: i -=1 #往上移动 elif target > array[i][j]: j += 1 #往右移动 else: return True #返回标记True return False #返回标记False if __name__ == "__main__": array1 = [[1,2],[2,4],[5,6],[7,9]] #测试数组array1 print(Find(8, array1)) #打印输出结果
转载地址:http://detki.baihongyu.com/