题目描述:
题解:
1.因为输入matrix的每行都是增序排列,因此将每行第一列数字matrix[row][0]和每行最后一个数字matrix[row][cols-1]比较,如果target在这两个数字范围内,则target有可能在该行之中。
2.用一个列表targetrows记录满足1的条件的行号。
3.对targetrows中的每行进行搜索,找到target则返回True,否则Fasle。
class Solution(object): def findNumberIn2DArray(self, matrix, target): rows = len(matrix) if rows==0: return False cols = len(matrix[0]) if cols==0: return False targetrows = [] for row in range(rows): left = matrix[row][0] right = matrix[row][cols-1] if target>=left and right>=target: targetrows.append(row) for targetrow in targetrows: for col in range(cols): if matrix[targetrow][col] == target: return True return False