刷演算法 二維陣列中的查詢

2021-09-13 12:43:17 字數 533 閱讀 2138

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

例如二維陣列arr = [

[1,2,3,4],

[5,6,7,8],

[9,10,11,12]

],target=7,如果按照常規的查詢,從arr0開始,那麼target>arr0,arr0和arr1都大於arr0,接下來該怎麼辦呢?這就陷入了乙個無法進行下去的局面。

所以,要在乙個陣列中查詢某target,則有辦法確定乙個唯一的方向,即下一步該向左還是向右、向上還是向下。

觀察題目,二維陣列的每一行都按照從左向右遞增,每一列都按照從上到下遞增,那麼如果從二維陣列的左下角開始,就可以保證向上的都是小的,向右的都是大的,過程就可以進行下去了。

function find(target, array)

return false;

}

演算法刷題筆記 二維陣列中的查詢

題目描述 解法一 二叉搜尋樹 解法構思 類似於二叉樹的,若查詢失敗,則一定終止於nil區。比如,在根為13的樹中查詢12,如下圖。上手程式設計 inline tupleleft const tuple root inline tupleright const tuple root class sol...

刷題 二維陣列查詢

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

演算法 二維陣列中的查詢

在乙個二維陣列中 每一行都按照從左到右遞增的順序排序 每一列都按照從上到下遞增的順序排序 請完成乙個函式,輸入這樣的乙個二維陣列 和乙個整數,判斷陣列中是否含有該整數 首先選取陣列中右上角的數字 如果該數等於要查詢的數字 則查詢結果結束 如果該陣列大於查詢的數字,則剔除這個陣列所在的列 如果該數字小...