編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性:
示例:
現有矩陣 matrix 如下:
[給定 target =[1, 4, 7, 11, 15],
[2, 5, 8, 12, 19],
[3, 6, 9, 16, 22],
[10, 13, 14, 17, 24],
[18, 21, 23, 26, 30]
]
5
,返回true
。
給定 target =20
,返回false
。
思路:利用python list的count()數一下target的次數
# -*- coding: utf-8 -*-
class solution(object):
def searchmatrix(self,matrix,target):
""":type matrix: list[list[int]]
:type target: int
:rtype: bool
"""if not matrix:
return false
for i in range(len(matrix)):
if matrix[i].count(target):
return true
if i == len(matrix) - 1:
return false
else:
continue
if __name__ == "__main__":
m = int(input())
n = int(input())
matrix = [[0]*n]*m
for i in range(m):
matrix[i] = input().split()
matrix[i] = [int(j) for j in matrix[i]]
target = int(input())
s = solution()
print(s.searchmatrix(matrix,target))
這道題由於每行和每列都是公升序,但是行與行之間元素可能存在重疊。考慮從右上角開始遍歷,如果target
比它大,則刪除當前行,如果target
比它小,則刪除當前列。 搜尋二維矩陣 II
搜尋二維矩陣 ii 寫出乙個高效的演算法來搜尋m n矩陣中的值,返回這個值出現的次數。這個矩陣具有以下特性 您在真實的面試中是否遇到過這個題?yes 樣例考慮下列矩陣 1,3,5,7 2,4,7,8 3,5,9,10 給出target 3 返回2 思路 行和列都是有序的,如果以右上角為起點來判斷大小...
搜尋二維矩陣 II
寫出乙個高效的演算法來搜尋m n矩陣中的值,返回這個值出現的次數。這個矩陣具有以下特性 樣例考慮下列矩陣 1,3,5,7 2,4,7,8 3,5,9,10 給出target 3 返回2 解題思路 遞增陣列,思路為從左下或者右上開始查詢。此題,我從左下開始查詢,第乙個為3,num 然後向上移動一行,去...
搜尋二維矩陣 II
編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 每行的元素從左到右公升序排列。每列的元素從上到下公升序排列。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17...