Js二維陣列中的查詢

2022-07-11 02:00:16 字數 1042 閱讀 8683

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

遍歷陣列中的所有元素,找到是否存在。

時間複雜度是 o(n^2),空間複雜度是 o(1)

/** *

* @param target

* @param array

*/function find(target, array)

const colnum = array[0].length;

for (let i = 0; i < rownum; i++)

}return false;

}資源搜尋**大全

廣州vi設計公司

按照題目要求,陣列的特點是:每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。考慮以下陣列:

1 2 3

4 5 6

7 8 9

在其中尋找 5 是否存在。過程如下:

從右上角開始遍歷當前元素小於目標元素(3 < 5),根據陣列特點,當前行中最大元素也小於目標元素,因此進入下一行當前元素大於目標元素(6 > 5),根據陣列特點,行數不變,嘗試向前一列查詢找到 5

**如下:

/** *

* @param target

* @param array

*/function find(target, array)

const colnum = array[0].length;

if (!colnum)

let row = 0,

col = colnum - 1;

while (row < rownum && col >= 0) else if (array[row][col] > target) else

}return false;

}時間複雜度是 o(m+n),空間複雜度是 o(1)。其中 m 和 n 分別代表行數和列數。

二維陣列查詢 js實現

分析 陣列中任意找乙個數,它的左邊都小於它,它的下邊都大於它。如果要找的數 target 大於這個數,那就向下找 小於這個數就向左找。那麼我們應該取哪個數與target做比較呢?首先我們先想到是陣列四個角的數,第乙個數和最後乙個數都不行 因為他們右下或左上與它們的關係是一樣的,要麼都大於它,要麼都小...

二維陣列中查詢

1.問題描述 在乙個二維陣列中,每一行按照從左到右的遞增順序排序,每一列按照從上到下的遞增的順序排序,請完成這樣乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列是否含有該整數。來自 劍指offer 2.分析 首先選取陣列中右上角的數字。如果該數字等於要查詢的數字,查詢過程結束 如果該數字大於要查...

二維陣列中查詢

乙個二維陣列,每一行從左到右,每一列從上到下,都是按遞增順序排列,輸入乙個二維陣列和某個數,判斷陣列中是否存在這個數 排除行和列 比如從右上角元素出發。先確定列的範圍,如果查詢數大於當前列的第一行數,那麼這一行的所有數都大於查詢數,排除,繼續查詢左邊列 確定行範圍,在前面列的範圍內,如果最右邊元素小...