面試題3 二維陣列查詢某數

2021-07-25 06:14:32 字數 760 閱讀 5207

題目描述:在乙個二維陣列中,查詢某個數。這個二位陣列的每一行和每一列都是遞增的。

解決:查詢都是從右上角的數(該數)開始查詢。

如果查詢的數==該數,則直接返回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 代表將要輸入的矩陣的行...