劍指offer 02二維陣列中的查詢

2022-06-03 10:18:07 字數 712 閱讀 7304

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

注意:陣列不一定是這樣的:

1  2  3  

4  5  6

7  8  9

而是這樣的:

1  2  8  9

2  4  9  12

4  7  10  13

6  8  11  15

一下給出兩種方法:

笨方法:

從陣列左上角開始查詢,若target比自己大且比右邊的數小,或者比最右邊列的數大,則應向下查詢,

但到達下一行,可能比該數大,則應向改行的右邊找,或比該數小,則向左找,這樣導致**判斷繁瑣

優化:不要只會從左上角的數開始查詢,觀察陣列之後,我們發現,每個數的右下方的數一定比自己大

那麼就從右上角開始查詢,target比自己小時,則向右查詢,否則向下查詢,這樣麼每次移動只考慮向左或向右,邏輯簡單明瞭

1

class

solution

16return

false;17

}18 };

1

class

solution

13return

false;14

}15 };

劍指offer 二維陣列

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

劍指offer 二維陣列中查詢

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

劍指offer 二維陣列中查詢

從今天開始每天一題,除了節假日。在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution return false class solut...