题目描述
在一个行有序列有序的矩阵中,寻找某一个值,如果该值存在,返回True,如果不存在,返回False。
思路
先对每行的第一个元素进行二分查找,确定该值所在的列。
再在该列中进行第二次二分查找,确定该值是否存在。
代码
class Solution:
def searchMatrix(self, matrix, target):
"""
:type matrix: List[List[int]]
:type target: int
:rtype: bool
"""
row=0
m=len(matrix)
if m == 0:
return False
n=len(matrix[0])
if n == 0:
return False
if target>=matrix[m-1][0]:
row=m-1
else:
for i in range(len(matrix)):
if target<matrix[i][0]:
row=i-1
break
if row<0:
return False
j=0
while j<n:
if matrix[row][j]==target:
return True
elif matrix[row][j]>target:
return False
else:
j+=1
return False