程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python description leetcode 74 Search 2D matrix

編輯:Python

Python describe LeetCode 74. Search for a two-dimensional matrix

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 】.

subject

Write an efficient algorithm to judge m x n Matrix , Is there a target value . The matrix has the following characteristics :

  • The integers in each row are arranged in ascending order from left to right .
  • The first integer in each row is greater than the last integer in the previous row .

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

Python describe

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

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved