题目:
搜索二维矩阵 II:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。
思路:
二分查找常规思路。
程序:
class Solution:
def searchMatrix(self, matrix, target):
"""
:type matrix: List[List[int]]
:type target: int
:rtype: bool
"""
if not matrix:
return False
row = len(matrix)
column = len(matrix[0])
if row == 0:
return False
if column == 0:
return False
for index in range(row):
if target >= matrix[index][0] and target <= matrix[index][column - 1]:
left_index = 0
right_index = column - 1
while left_index <= right_index:
middle_index = (left_index + right_index) // 2
if matrix[index][middle_index] == target:
return True
elif matrix[index][middle_index] > target:
right_index = middle_index - 1
else:
left_index = middle_index + 1
return False