Search a 2D Matrix
发布日期:2021-05-13 00:13:03 浏览次数:22 分类:精选文章

本文共 1795 字,大约阅读时间需要 5 分钟。

?????????m x n?????????????????????????????????????????????????????????????????????????????????????O(log m + log n)???????

?????????????????????????????????????????????????????????????????????????????????????????????????????

??????

class Solution:
def midsearch(self, lists, target):
left = 0
right = len(lists) - 1
while left <= right:
mid = (left + right) // 2
if lists[mid] < target:
left = mid + 1
elif lists[mid] == target:
return mid
else:
right = mid - 1
return -1

?????

class Solution:
def midsearch_1(self, lists, target):
left = 0
right = len(lists) - 1
while left <= right:
mid = (left + right) // 2
if target < lists[mid][0]:
right = mid - 1
elif target > lists[mid][0]:
left = mid + 1
else:
return mid
return -1

???

class Solution:
def searchMatrix(self, matrix, target):
if not matrix:
return False
rows = [row[0] for row in matrix]
j = self.midsearch_1(rows, target)
if j == -1:
if target > matrix[-1][-1]:
return False
else:
row = matrix[-1]
i = self.midsearch(row, target)
return i != -1
else:
row = matrix[j]
i = self.midsearch(row, target)
return i != -1

????

  • midsearch????????????????????????????????????????????-1?

  • midsearch_1???????????????????????????????????????????????????

  • searchMatrix??????????????????????midsearch_1???????????????????????????????????midsearch??????

  • ????????????????????????????????O(log m + log n)????????

    上一篇:Interleaving String
    下一篇:pyspider 异步机制

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2025年04月07日 09时56分37秒