劍指offer 二維陣列中的查詢

2021-08-26 15:20:59 字數 583 閱讀 4177

試題:

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

**:

暴力方法:順序查詢或者對行或列使用二分法。但根據陣列規律,每個元素都會大於在當前位置前面的元素。如果我們從右上角開始搜尋,就會發現,如果target小於當前元素,則顯然target應該處於當前元素所在列的左邊,此時可以列數向左移。如果target大於當前元素,則說明target應該在當前元素的下邊,此時行數向下移(這相當於二分法一樣,取了另乙個比較點)。

這題其實還是有序表的二分法型別。之所以選擇從左下角或右上角是因為,在比較時可以有唯一確定的方向移動,如果使用左上角或右下角吧,則與target比較後,都有兩個移動方向。

public

class solution else

if(target > array[row][col])else

}return

false;

}}

劍指offer 二維陣列中查詢

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

劍指offer 二維陣列中查詢

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

劍指offer 二維陣列中查詢

要求如下 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 示例如下 7,1,2,8,9 2,4,9,12 4,7,10,13 6,8,11,15 思路有三種,...