3 二維陣列中的查詢

2021-07-04 09:38:39 字數 723 閱讀 4597

參考:二分查詢方法

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

方法一:劍指offer中提供的方法

如果我們從左上角開始查詢,那麼當查詢元素比左上元素大時,無法判斷是應該向下、向右還是向右下;從右下也是同理。

但是如果我們從右上角開始查詢,當查詢元素比右上元素大時,那麼第一行淘汰,只能向下;當查詢元素比右上元素小時,那麼最後一列淘汰,只能向左;從左下角也是同理。

bool find(int* matrix, int rows, int columns, int number)else if(matrix[index] < number)else

//}//return found;

//從二維陣列的右下角開始

int row = rows-1;

int column = 0;

while(row>=0 && columnint index = row * columns + column;

if(matrix[index] == number)else

if(matrix[index] < number)else

}return found;

}

3)二維陣列中的查詢

題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 這個題目相對前面三題比較簡單,假設該二維陣列為下圖 a 主要是思路上面過去,實現起來挺簡單的,下面我介紹一下實現思路,有種...

3 二維陣列中的查詢

題目描述 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解析 取二維陣列的右上方的頂點與要找的數字比較,如果要找的數字比頂點的數字小,那麼捨棄該列 colu...

3 二維陣列中的查詢

編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 每行的元素從左到右公升序排列。每列的元素從上到下公升序排列。示例 現有矩陣 matrix 如下 給定 target 5,返回 true。給定 target 20,返回 false。因為二維陣...