二維陣列查詢

2021-06-29 16:37:14 字數 720 閱讀 8759

天氣變化大,生病折騰了1個禮拜,寫篇部落格壓壓驚。

題目源自於清明假期前夕舍友春招的筆試題,後來得知是劍指offer上的一道題,書上應該有解題思路啥的。

題目重述

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

由於從左到右,從上到下是遞增的。如果從索引[0,0]開始,比當前索引[i,j]對應的數值大的數可能在下一行[i+1,j]也可能在下一列[i,j+1]。所以,查詢起始索引設定在[0,col-1]。

這樣講所需要查詢的key與 當前索引[i,j]對應的值比較時:當 key>a[i,j]。則key一定在下一行 key < a[i,j],則key一定在上一列。類似於二叉排序樹。

**

#include using namespace std;

int a[1001][1001];

int m;//row

int n;//col

int t;//needed number

int main()

} i = 0;

j = n - 1;

while (1)

{ if(t > a[i][j])

{ i++;

if(i > m-1)

{cout << "no" <

二維陣列查詢

近日微博上看到乙個題目,二維陣列查詢 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。例如下面的二維陣列就是每行 每列都遞增排序。如果在這個陣列中查詢數字7,則返回true 如果查詢...

二維陣列查詢

題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請 完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解題思路 按照一般搜尋二維陣列的方法,從左到右,從上到下,比較難根據這個陣列的特點進行快速搜尋。可以從 右到左,從上到下,...

二維陣列查詢

題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解題思路 從二維陣列的右上角的元素開始判斷,因為此元素是它所在行的最大數,是它所在的列的最小數。如果它等於要查詢的數字,則查詢過...