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

2022-01-11 17:21:03 字數 732 閱讀 3146

題目:

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

1   5   7   8   9 

2   6   8   9  10

3   7  10 11 13

4   8  12 13 15

5   9  13 14 16

給定數字12,如上陣列找出12是否存在該陣列中

解決方法:

可以利用左下角或者右上角的優勢,比如左下角數字5上面的數字都比他小右邊的數字都比他大,右上角數字9下面的數字都比他大左邊的數字都比他小。

思路:如題要找的數字是12,此時我們使用右上角的優勢,右上角數字9,小於12,所以這個時候就在他的下一行找,此時下一行是數字10,同理比12小,往下一行找,下一行數字是13,此時13>12,故此從13的左邊找(13下面的肯定都比13大), 左邊是11,此時11<12,故從11的下面找(11的左邊肯定都比11小),下一行是數字13,此時13>12,故從13的左邊找(下面的肯定比13大),13的左邊是12,此時找到了12直接返回true即可。若是沒有找到則返回false

**:

1

public

class

solution else

if(array[row][col] 14return

false;15

}16 }

劍指offer《一》 二維陣列中的查詢

劍指offer 一 二維陣列中的查詢 劍指offer 一 二維陣列中的查詢 題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。從上到下,如果最target比最右邊的數都大,從...

劍指offer(一) 二維陣列中的查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。該二維陣列是按照每行從左往右自增 每列從上到下遞增的順序排列的。所以可以考慮先從第一行開始遍歷每一行的第乙個元...

劍指Offer(一) 二維陣列中的查詢

這個系列是我在牛客網上刷 劍指offer 的刷題筆記,旨在提公升下自己的演算法能力。檢視完整的劍指offer演算法題解析 劍指offer完整習題解析 二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸...