劍指offer 面試題4 二維陣列中的查詢

2021-10-02 06:01:22 字數 733 閱讀 4953

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

(1)獲取陣列的長和寬

以二維陣列右上角或者左下角元素作為標誌位進行遍歷(這裡以右上角舉例)。

(2)遍歷並比較判斷

若右上角元素值與目標值target相等,返回true;

若右上角元素值大於(>)目標值taiget,則令遍歷陣列的列下標減1;

原因:當前右上角元素所在的列可以全部被忽略,以後不再遍歷,因為這一列的元素值肯定都比target大,搜尋區域減少一列。

若右上角元素值小於(<)目標值taiget,則令遍歷陣列的行下標加1。

原因:當前右上角元素所在的行可以全部被忽略,以後不再遍歷,因為這一行的元素值肯定都比target小,搜尋區域減少一行。

public

class

solution

else

if(target >= array[i]

[j])

else

if(target <= array[i]

[j])

}return

false;}

}// o(m+n)

ps:蘇州大學考研真題,有一年考過這個題

劍指offer面試題4 二維陣列的查詢

題目 二維陣列的查詢 在乙個二位陣列中,每一行都遞增,每一列的遞增,請完成乙個函式,查詢二維陣列中是否有number 方案 只需要每次從二維陣列的右上角開始查詢就可以了,因為如果右上角的數字都大於要查詢的number的話,那麼這一列肯定都大於number,我們只需要在剩下的列中找就行了,如果右上角的...

劍指offer面試題4 二維陣列中的查詢

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

劍指offer 面試題4 二維陣列中的查詢

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