法1

时间复杂度:O(N^2)
空间复杂度:O(1)

#
# 寻找目标是否在二维数组内
# @param array int整型二维数组 二维数组
# @param target int整型 目标值
# @return bool布尔型
#
class Solution:
    def Find(self , array , target ):
        # write code here
        for row in array:
            for item in row:
                if item == target:
                    return True
        return False

法2

时间复杂度:O(a+b), a b分别为array的行数 列数
空间复杂度:O(1)

# 寻找目标是否在二维数组内
# @param array int整型二维数组 二维数组
# @param target int整型 目标值
# @return bool布尔型
#
class Solution:
    def Find(self , array , target ):
        # write code here
        i = 0
        j = len(array[0])-1
        visit = 0
        while(1):
            if target == array[i][j]:
                return True
            if target < array[i][j]:
                j -= 1
            if target > array[i][j]:
                i += 1
            if i == len(array)-1 and j == 0:
                return False