題目:在乙個二維陣列中,每一行都按照從左到右遞增的順序排列,每一列都按照從上到下遞增的順序排列。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
解題思路:
首先選取陣列中右上角的數字。如果該數字等於要查詢的數字,查詢過程結束;如果大於要查詢的數字,剔除這個數字所在的列;如果數字要小於要查詢的數字,剔除這個數字所在行。也就是說如果要查詢的數字不在陣列的右上角,則每一次都在陣列的查詢範圍中剔除一行或者一列,這樣每一步都可以縮小查詢範圍,知道查詢到要查詢的數字或查詢範圍為空。
按照如上思路,**實現如下:
bool matrixfind::find(int *matrix, int rows, int columns, int number)
else if(matrix[row*columns + column] > number)
else
}} return bfound;
}
完整**實現#include "string.h"
class matrixfind
;matrixfind::matrixfind()
;matrixfind::~matrixfind()
bool matrixfind::find(int *matrix, int rows, int columns, int number)
else if(matrix[row*columns + column] > number)
else
}} return bfound;
}int main()
,,,};
matrixfind omitrixtest;
omitrixtest.find(*array, 4, 3, 8);
return 0;
}
有序二維陣列中查詢
題目 在乙個n n二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。舉例1 2342 3473 4784 589 找6,false 找5,true 分析 找6,從右上角開始 也可以左下角 右...
有序二維陣列的查詢
劍指offer原題,陣列從左到右,從上到下遞增,給定乙個數target找出這個數是否在該有序二維陣列裡面。找到的話返true,否則返回false。題目比較簡單就簡單說說思路,利用二維陣列的特性,我們把陣列看做乙個矩陣,從矩陣的右上角元素a i,j 開始找,如果a i,j target,則target...
在查詢有序二維陣列中查詢元素
解題思路 實現 public class sortedmatrixelementfinder return true private static class sortedmatrix public void excludethisrow public boolean islegalindex pu...