劍指 Offer 04 二維陣列中的查詢

2021-10-08 08:16:59 字數 744 閱讀 2878

題目描述

在乙個 n * m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

解題思路

這道題可以有兩種解法

(1)暴力法,直接進行兩次遍歷。

(2)根據這個二維陣列的特點,從二維陣列的右上角開始,比如示例中右上角的數是15,如果target = 20, 20 > 15, 15所在行直接劃掉, 進入第二行,19 < 20,直接劃掉19所在行,進入第三行,22 > 20, 劃掉22所在列。

比target大,劃掉所在列,比target小,劃掉所在行

**

class

solution

int rows = matrix.length, columns = matrix[0]

.length;

int row =

0, column = columns -1;

while

(row < rows && column >=0)

else

if(num > target)

else

}return

false;}

}

劍指offer04 二維陣列查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。測試示例 矩陣 matrix 如下 begin 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 ...

劍指Offer04 二維陣列中的查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個高效的函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,1...

劍指 Offer 04 二維陣列中的查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。遍歷陣列 時間複雜度 o nm 空間複雜度o 1 從二維陣列的右上角開始查詢。如果當前元素等於目標值,則返回 true。如...