剑指offer刷题笔记||04.二维数组中的查找(python)

二维数组中的查找

题目描述

剑指offer刷题笔记||04.二维数组中的查找(python)_第1张图片
解题思路:
可以选择从右上角或从左下角开始寻找,以从左下角为例,设左下角值为a,a往上移动,数值变小;a往右移动,数值变大。当a>target时,上移,当a 代码示例:

//从左下角开始查找
class Solution(object):
    def findNumberIn2DArray(self, matrix, target):
        """
        :type matrix: List[List[int]]
        :type target: int
        :rtype: bool
        """
        n = len(matrix)
        m = len(matrix[0])
        i = n-1
        j = 0
        while i >= 0 or j <= m-1:
            if target < matrix[i][j]:
                i -= 1
            elif target > matrix[i][j]:
                j += 1
            else:
                return True
        return False

从右上角查找同理。

你可能感兴趣的:(剑指offer,python,leetcode,剑指Offer,算法)