LeetCode0240.搜索一个二维矩阵II[中][Python][数组]该矩阵具有以下属性:每行中的整数从左到右升序排列。每列中的整数从上到下升序排列。示例:考虑以下矩阵:[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]]给定target=5,返回true。给定target=20,返回false。题目是写一个高效的算法在mxnmatrix矩阵中搜索一个目标值target。该矩阵具有以下性质:每行的元素从左到右按升序排列。每列的元素从上到下按升序排列。例:现有矩阵矩阵如下:[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]]给定target=5,返回true。给定target=20,返回false。思路的解决方法是直接暴力遍历,遇到相同的就返回True,没有遇到的都遍历完就返回False。时间复杂度:O(n*m),其中n为matrix矩阵的行数,m为matrix矩阵的列数。空间复杂度:O(1)Python3代码来自输入importListclass解决方案:defsearchMatrix(self,matrix,target):""":typematrix:List[List[int]]:typetarget:int:rtype:bool"""#方案一:暴力#特殊判断ifmatrix==[]:returnFalsen,m=len(matrix),len(matrix[0])foriinrange(n):forjinrange(m):ifmatrix[i][j]==target:returnTrueelifmatrix[i][j]>target:breakreturnFalse解法二、左下角标记数法从左下角开始。如果相等,则返回;如果大于target,则表示该行的最小值大于target,则向上移动一行;如果小于target,说明该列的最大值小于target,所以向右移动一列。时间复杂度:O(n+m),其中n为matrix矩阵的行数,m为matrix矩阵的列数。空间复杂度:O(1)Python3代码来自输入importListclass解决方案:defsearchMatrix(self,matrix,target):""":typematrix:List[List[int]]:typetarget:int:rtype:bool"""#解法二:左下角符号数法i,j=len(matrix)-1,0whilei>=0andj
