最简单的方法是暴力去遍历但是当数据多时,时间复杂度较高。采用二分法去解决问题,为了避免二维矩阵下标的使用麻烦 ,将矩阵转换成List,下面是代码:
class Solution():
def searchMatrix(self, matrix, target):
# 得出这个矩阵的维度
m = len(matrix)
if not m:
return False
n = len(matrix[0])
if not n:
return False
# 将这个二位矩阵转换成一个一维的数组
new_matrix = []
for i in range(m):
for j in range(n):
new_matrix.append(matrix[i][j])
new_matrix = sorted(new_matrix)
left = 0
right =len(new_matrix)-1
while left <= right:
mid = (left + right) // 2
if new_matrix[mid] > target:
right = mid - 1
elif new_matrix[mid] < target:
left = mid + 1
else:
return True
return False