在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
注意:陣列不一定是這樣的:
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比自己小時,則向右查詢,否則向下查詢,這樣麼每次移動只考慮向左或向右,邏輯簡單明瞭
1class
solution
16return
false;17
}18 };
1class
solution
13return
false;14
}15 };
劍指offer 二維陣列
題目 在乙個二維陣列中每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。完成乙個函式,輸入這樣的陣列和乙個整數,判斷陣列中是否含有該整數。思路 由於該二維陣列從左到右,從上到下均為順序遞增的。因此右下角與左上角的數字均大於或小於其周圍數字,如果選擇改組作為起始點,則無法確定下一...
劍指offer 二維陣列中查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和一 個整數,判斷陣列中是否含有該整數。public class solution 因為陣列每一行都按照從左到右遞增的順序排序,每一列都按照從上到下...
劍指offer 二維陣列中查詢
從今天開始每天一題,除了節假日。在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution return false class solut...