編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性:
每行中的整數從左到右按公升序排列。
每行的第乙個整數大於前一行的最後乙個整數。
示例 1:
輸入:matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]target = 3
輸出: true
示例 2:
輸入:matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]target = 13
輸出: false
題目要的是高效查詢演算法,而且這個二維陣列是有序的,很容易想到的二分查詢
但問題來了,二分查詢只是對一維陣列,那麼二維陣列呢?
其實只要找到二維陣列和一維陣列的對應關係即可
一維陣列怎麼和二維陣列對應呢?
假設已知一維陣列的下表為mid
, 那麼m ×n二維陣列的座標為[mid / n][mid % n]
這樣就找到對應關係了,**直接按照二分查詢的改下就ok
class solution
else
if(midvalue < target)
else
}return ret !=-1
;}};
74 搜尋二維矩陣
題目 編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,50 target 3 輸出 true 示...
74 搜尋二維矩陣
74.搜尋二維矩陣 author wsq date 2020 10 06 編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16...
74 搜尋二維矩陣
題目描述 編寫乙個高效的演算法來判斷m x n矩陣中,是否存在乙個目標值。該矩陣具有如下特性 示例1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,60 target 3 輸出 true 示例 2 輸入 matrix 1,3,5,7 10,11,16,20 23,30...