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

2021-10-02 22:16:18 字數 733 閱讀 9400

/*

題目:二維陣列的查詢

在乙個二位陣列中,每一行都遞增,每一列的遞增,請完成乙個函式,查詢二維陣列中是否有number

*//*

方案:只需要每次從二維陣列的右上角開始查詢就可以了,因為如果右上角的數字都大於要查詢的number的話,那麼這一列肯定都大於number,我們只需要在剩下的列中找就行了,如果右上角的數字小於numner的話,那麼這一行我們就不需要判斷了,肯定都是小於number的

*//*

測試用例:1.二維陣列中含有目標數字,可以是最大值,最小值

2.二維陣列中沒有我們要查詢的目標值

3.特殊用例(空指標)

*/#include

using

namespace std;

bool

find

(int

*matrix,

int rows,

int columns,

int number)

else

if(matrix[row*columns+column]

>=number)

else}}

return find;

}int

main()

,,,}

; cout<<

find((

int*

)arr,4,

4,7)

<}

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

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

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

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

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

思路 首先選取陣列中右上角的數字 如果該數字等於目標數字,則查詢過程結束 如果該數字大於目標數字,則刪除這個數字所在列 該列都大於目標數字 如果該數字小於目標數字,則刪除這個數字所在行 該行都小於目標數字 coding utf 8 class solution array 二維列表 def find...