劍指offer 面試題3 二維數查詢 java實現

2021-09-10 06:24:44 字數 698 閱讀 9268

面試題3:

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

分析:首先選取陣列中右上角的數字。如果該數字等於要查詢的數字,查詢過程結束:如果該數字大於要查詢的數字,剔除這個數字所在的列:如果該數字小於要查詢的數字,剔除這個數字所在的行。也就是說如果要查詢的數字不在陣列的右上角,則每-次都在陣列的查詢範圍中剔除)行或者一列,這樣每一步都可以縮小查詢的範圍,直到找到要查詢的數字,或者查詢範圍為空。

package partone;

public class findmatrix

int height = matrix[0].length;

int length = matrix.length;

int startheight = height-1;

int startlenght = 0;

//確保查詢的資料在陣列中

//初始查詢比對數值為矩陣右上角值

while(startheight>0&&startlenghtvalue)

//右端的資料小於要找的資料,往下移一行

if(matrix[startlenght][startheight]列印的結果:(這個查詢到的資料只是相對最右邊的乙個,如果陣列中有多個相同的資料的話,需要優化一下,這裡沒有實現這個功能) 

劍指offer 面試題3 二維陣列中找數

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

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

題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution else if array row col target col else row return ...

劍指offer面試題3 二維陣列查詢問題

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。暴力破解方式也就是對二維陣列中的每個元素逐個檢查,結束條件為找到和目標值相等的元素或者查詢到最後乙個元素。對於乙個行列數都為n的二維陣...