面試題3 二維陣列中查詢某值

2021-08-15 23:24:22 字數 593 閱讀 2425

乙個從左到右,從上到下依次遞增的數值的二維陣列,設計乙個演算法找出值a。

思路:以二維陣列的右上角的為突破點(設值為b),如果a大於b,則可以消掉最上面那行,反之,可以消掉最右邊那列。迴圈可找到那個值(當然如果二維陣列中有那個值的話)。

程式如下:

#includeusing namespace std;

bool find(int* matrix,int rows,int cols,int num)

else if (matrix[row*cols+col]>num) col--;

else row++;

} }return found;

}int main()

; printf("begin!\n");

bool found=find((int*)a,4,4,1);

//魯棒性測試:輸入空指標

//bool found=find(null,3,3,2);

if (found) printf("pass\n");

else printf("failed\n");

cin.get();

}

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

題目描述 在乙個二維陣列中,查詢某個數。這個二位陣列的每一行和每一列都是遞增的。解決 查詢都是從右上角的數 該數 開始查詢。如果查詢的數 該數,則直接返回true 如果查詢的數 該數,則說明要查詢的數在該數的左邊,那麼列數 1 如果查詢的數 該數,則說明要查詢的數在該數的下邊,那麼行數 1.直至查詢...

面試題3 二維陣列中的查詢

題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為兩個整數m和n 1 m,n 1000 代表將要輸入的矩陣的行...

面試題3 二維陣列中的查詢

題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為兩個整數m和n 1 m,n 1000 代表將要輸入的矩陣的行...