首页 > 其他 > 详细

leetcode74

时间:2019-12-10 10:44:07      阅读:69      评论:0      收藏:0      [点我收藏+]
 1 import bisect
 2 class Solution:
 3     def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
 4         rows = len(matrix)
 5         if rows == 0:
 6             return False
 7         columns = len(matrix[0])
 8         if columns == 0:
 9             return False
10         rowlist = []
11         for i in range(rows):
12             rowlist.append(matrix[i][0])
13         
14         rownum = bisect.bisect_left(rowlist, target)
15 
16         if rownum >= rows:
17             rownum -= 1
18         elif rownum > 0:
19             if rowlist[rownum] == target:
20                 return True
21             else:
22                 rownum -= 1
23         collist = matrix[rownum]
24         idx = bisect.bisect_left(collist, target)
25         if idx >= columns:
26             return False
27         return collist[idx] == target

先按照列进行二分查找,找到符合的行,再对这一行进行二分查找。

leetcode74

原文:https://www.cnblogs.com/asenyang/p/12015184.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!