大家好,我是亓官劼(qí guān jié ),在【亓官劼】公眾號、CSDN、GitHub、B站等平台分享一些技術博文,主要包括前端開發、python後端開發、小程序開發、數據結構與算法、docker、Linux常用運維、NLP等相關技術博文,時光荏苒,未來可期,加油~
如果喜歡博主的文章可以關注博主的個人公眾號【亓官劼】(qí guān jié),裡面的文章更全更新更快。如果有需要找博主的話可以在公眾號後台留言,我會盡快回復消息.
本文原創為【亓官劼】(qí guān jié ),請大家支持原創,部分平台一直在惡意盜取博主的文章!!! 全部文章請關注微信公眾號【亓官劼】。
編寫一個高效的算法來判斷 m x n
矩陣中,是否存在一個目標值。該矩陣具有如下特性:
示例 1:
輸入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
輸出:true
示例 2:
輸入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
輸出:false
提示:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 100
-104 <= matrix[i][j], target <= 104
先二分行,再二分列
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
List of articles Preface One
Today is Valentines Day , Give