劍指offer 1 二維陣列查詢

2021-09-12 21:56:29 字數 887 閱讀 4505

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

二維陣列是有序的,比如下面的資料:

1 2 3

4 5 6

7 8 9

可以直接利用左下角數字開始查詢:

大於:比較上移

小於:比較右移

將二維陣列看作平面座標系

從左下角(0,arr.length-1)開始比較:

目標值大於座標值---x座標+1

目標值小於座標值---y座標-1

注意:二維陣列arri中

j代表x座標

i代表y座標

function find(target, array) 

function compare(target, array, i, j)

const temp = array[i][j];

if (target === temp)

else if (target > temp)

else if (target < temp)

}

二分查詢的條件是必須有序。

和線性表的中點值進行比較,如果小就繼續在小的序列中查詢,如此遞迴直到找到相同的值。

function binarysearch(data, arr, start, end) 

var mid = math.floor((end + start) / 2);

if (data == arr[mid]) else if (data < arr[mid]) else

}

劍指offer 1 二維陣列查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 首先是先模擬獲取隨機遞增陣列 public static int getarray int n,int m 初...

劍指Offer 1 二維陣列查詢

劍指offer 1 二維陣列查詢 馬上也要畢業開始找工作了,自己程式設計能力實屬弟弟,笨鳥先飛,雖然飛得好像也不早了,打算每天做一道吧,爭取暑假前做完。準備秋招了,目前就是在牛客網上做題為主 題目要求是這樣 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從...

劍指offer 1 二維陣列的查詢

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。根據陣列的特點,每行從左到右遞增,每列從上到下遞增,從二維陣列的右上角 0 m 1 開始搜尋,若ta rget ar ray i j ...