力扣演算法題 074搜尋二維矩陣

2022-06-04 01:12:10 字數 1082 閱讀 1207

編寫乙個高效的演算法來判斷 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

1 #include "

_000庫函式.h"2

34//題目要求使用高效演算法,但不知最高效的是哪個5//

本解法複雜度為m+n

6class

solution

19return

false;20

}21};22

23//

當然這道題也可以使用一次二分查詢法,如果我們按s型遍歷該二維陣列,

24//

可以得到乙個有序的一維陣列,那麼我們只需要用一次二分查詢法,

25//

而關鍵就在於座標的轉換,如何把二維座標和一維座標轉換是關鍵點,

26//

把乙個長度為n的一維陣列轉化為m*n的二維陣列(m*n = n)後,

27//

那麼原一維陣列中下標為i的元素將出現在二維陣列中的[i / n][i%n]的位置,

28//

2930

//one binary search

31class

solution

44return

false;45

}46};47

48void

t074() ,, };

52 cout << s.searchmatrix(v, 3) <53 cout << s.searchmatrix(v, 13) <5455

56 }

LeetCode 074 搜尋二維矩陣

編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,50 target 3 輸出 true 示例 2...

74 搜尋二維矩陣 力扣(LeetCode)

編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,50 target 3 輸出 true 示例 2...

演算法題 搜尋二維矩陣 II

搜尋二維矩陣 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,24 18,21,23,26,30 給...