面試題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的二維陣...