LeetCode 074 搜尋二維矩陣

2021-10-12 04:50:18 字數 983 閱讀 7403

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

示例 3:

輸入:matrix = , target = 0

輸出:false

由於矩陣本身是左小右大, 上小下大, 所以如果先從最右上角的數字開始比較

int i = 0; int j = matrix[0].length - 1;

如果該數等於目標數, 直接返回

如果該數小於目標數, 由"左小右大"的特性, 該數所在行所有數都小於目標數, 則直接忽略該行, 將比較的數字置往下挪一行i++

如果該數大於目標數, 由"上小下大"的特性, 該數所在列所有數都大於目標數, 則直接忽略該列, 將比較的數字置往左挪一列j--

class

solution

int m = matrix.length;

int n = matrix[0]

.length;

// 遍歷時從"右上角"開始遍歷

for(

int i =

0, j = n -

1; i < m && j >=0;

)else

if(matrix[i]

[j]< target)

else

}return

false;}

}

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

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

LeetCode 搜尋二維矩陣

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

LeetCode 搜尋二維矩陣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...