劍指offer 二維陣列的查詢

2021-08-31 18:42:12 字數 1077 閱讀 8621

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

1.先判斷二維陣列構成的矩陣是否為空,行、列是否大於0。

2.舉例說明。

如:二維陣列為         查詢是否含有5

1 2 7 9

2 4 8 10

3 5 9 12

4 6 11 15

1.從矩陣右上角元素開始判斷,5<9,說明要找的數在9的左邊列。即:

1 2 7

2 4 8

3 5 9

4 6 11

2.從矩陣右上角元素開始判斷,5<7,說明要找的數在7的左邊列。即:

1 2

2 4

3 5

4 6

3.從矩陣右上角元素開始判斷,5>2,說明要找的數在2的下邊行。即:

2 4

3 5

4 6

4.從矩陣右上角元素開始判斷,5>4,說明要找的數在4的下邊行。即:

3 5

4 6

此時右上角元素=5,說明在。

即和右上角元素比較,小於右上角元素,列=最大列-1。大於右上角元素,行=行+1

public

class

solution

int row =0;

int column = array[0]

.length -1;

while

(row < array.length && column >=0)

else

if(array[row]

[column]

> target)

else

++row;

}return found;

}}

二維陣列查詢(劍指offer)

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

劍指offer 二維陣列的查詢

題目描述 書中第三題 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution return false 要自己處理輸入的版本 public sta...

劍指Offer 二維陣列的查詢

題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 題目給定二維陣列按行遞增,按列遞增。1.錯誤 有一種很自然的想法就是分別按行和列定位,細想一下這是不行的 例如按行定位時,...