Hello everyone , I'm Qi Guanjie (qí guān jié ), stay 【 Qi Guanjie 】 official account 、CSDN、GitHub、B Share some technical blog posts on the website and other platforms , It mainly includes front-end development 、python The backend development 、 Applet development 、 Data structure and algorithm 、docker、Linux Common operation and maintenance 、NLP And other related technical blog , Time flies , Future period , come on. ~
If you love bloggers, you can focus on the bloggers' official account. 【 Qi Guanjie 】(qí guān jié), The articles inside are more complete and updated faster . If you need to find a blogger, you can leave a message at the official account. , I will reply to the message as soon as possible .
This article was originally written as 【 Qi Guanjie 】(qí guān jié ), Please support the original , Some platforms have been stealing blog articles maliciously !!! All articles please pay attention to WeChat official account 【 Qi Guanjie 】.
Write an efficient algorithm to judge m x n
Matrix , Is there a target value . The matrix has the following characteristics :
Example 1:
Input :matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
Output :true
Example 2:
Input :matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
Output :false
Tips :
m == matrix.length
n == matrix[i].length
1 <= m, n <= 100
-104 <= matrix[i][j], target <= 104
The first two branches , Second breakdown
class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
n,m = len(matrix),len(matrix[0])
l,r = 0,n-1
while l < r:
mid = l + r + 1>> 1
if matrix[mid][0] == target:
return True
if matrix[mid][0] < target:
l = mid
else:
r = mid - 1
line = l
l,r = 0,m-1
while l < r:
mid = l + r >> 1
if matrix[line][mid] >= target:
r = mid
else:
l = mid + 1
return matrix[line][l] == target