劍指offer第四題 二維陣列中的查詢

2021-10-08 19:22:48 字數 1502 閱讀 2398

在乙個 n * m

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

示例:現有矩陣 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

]]

給定 target = 5,返回 true。

給定 target = 20,返回 false。

限制:0 <= n <= 1000

0 <= m <= 1000

二分查詢:

/**

* 劍指offer 第四題 二維陣列中的查詢

* */

public

class

t04二維陣列中的查詢 ,,

,,};

system.out.

println

(findnumberin2darray

(matrix,5)

);}public

static

boolean

findnumberin2darray

(int

matrix,

int target)

if(matrix[i]

[mid]

>target)

else}}

return

false;}

}

提交結果:

線性查詢:

public

boolean

findnumberin2darray

(int

matrix,

int target)

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;}

} ```

《劍指offer》二維陣列題

本文完全自己學習記錄,以便將來回顧 未排版 思路 從最後一列的首行開始與number比較 比如上圖中的數字9 若大於該number,則此列可跳過,繼續比較前面一列首行數字,若大於number繼續上一步,若小於,則看此列下一行數字,若找到則true,若此列遇到大於number的數字,還未找到numbe...

劍指offer 二維陣列

題目 在乙個二維陣列中每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。完成乙個函式,輸入這樣的陣列和乙個整數,判斷陣列中是否含有該整數。思路 由於該二維陣列從左到右,從上到下均為順序遞增的。因此右下角與左上角的數字均大於或小於其周圍數字,如果選擇改組作為起始點,則無法確定下一...

劍指offer 二維陣列中查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和一 個整數,判斷陣列中是否含有該整數。public class solution 因為陣列每一行都按照從左到右遞增的順序排序,每一列都按照從上到下...