題目描述:在乙個二維陣列中,查詢某個數。這個二位陣列的每一行和每一列都是遞增的。
解決:查詢都是從右上角的數(該數)開始查詢。
如果查詢的數==該數,則直接返回true;
如果查詢的數 < 該數,則說明要查詢的數在該數的左邊,那麼列數-1;
如果查詢的數 > 該數,則說明要查詢的數在該數的下邊,那麼行數+1.
直至查詢到這個數。
**:
主函式:bool find(int* matrix,int rows,int columns,int number)
int row = 0;
int column = columns-1;
while(row < rows && column >= 0)
if(matrix[row*columns + column] < number)
else
}return
false;
}
int main()
; if(find(matrix,rows,columns,10))
else
if(find(matrix,rows,columns,20))
else
return
0;}
面試題3 二維陣列中查詢某值
乙個從左到右,從上到下依次遞增的數值的二維陣列,設計乙個演算法找出值a。思路 以二維陣列的右上角的為突破點 設值為b 如果a大於b,則可以消掉最上面那行,反之,可以消掉最右邊那列。迴圈可找到那個值 當然如果二維陣列中有那個值的話 程式如下 includeusing namespace std boo...
面試題3 二維陣列的查詢
一種思路是 利用二維陣列由上到下,由左到右遞增的規律,那麼選取右上角或者左下角的元素a row col 與target進行比較,當target小於元素a row col 時,那麼target必定在元素a所在行的左邊,即col 當target大於元素a row col 時,那麼target必定在元素a...
面試題3 二維陣列中的查詢
題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為兩個整數m和n 1 m,n 1000 代表將要輸入的矩陣的行...