Leetcode_剑指Offer_面试题04. 二维数组中的查找

题目:

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
Leetcode_剑指Offer_面试题04. 二维数组中的查找_第1张图片

思路:从数组右上角开始进行比较,当前遍历到的值与目标值相等时,返回True;当前遍历到的值比目标值小时往下跳一行,否则往左跳一列。

代码:

class Solution:
    def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:
        n=len(matrix)
        if n==0:return False
        m=len(matrix[0])
        row=0
        col=m-1
        while row<n and col>-1:
            if target==matrix[row][col]:return True
            if target<matrix[row][col]:
                col-=1
            else:
                row+=1
        return False

你可能感兴趣的:(Leetcode_剑指Offer_面试题04. 二维数组中的查找)