在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
array: 待查詢的二維陣列target:查詢的數字
查詢到返回true,查詢不到返回false例如下面的二維陣列就是每行、每列都遞增排序。如果在這個陣列中查詢數字7,則返回true,如果查詢數字5,由於陣列不含有該數字,則返回false。12
8924
91247
101368
1115
當我們需要解決乙個複雜的問題時,乙個很有效的辦法就是從乙個具體的問題入手,通過分析簡單具體的例子,試圖尋找普遍的規律。針對這個問題,我們不妨從乙個具體的例子入手。下面我們以在題目中給出的陣列中查詢數字7為例來一步步分析查詢的過程。
首先選取陣列中右上角的數字。如果該數字等於要查詢的數字,查詢過程結束;如果該數字大於要查詢的數字,剔除該數字所在的列;如果該數字小於要查詢的數字,剔除該數字的行。也就是說如果查詢的數字不在數字的右上角,則每一次都在陣列的查詢範圍中剔除一行或者一列,這樣每一步都可以縮小查詢的範圍,知道找到要查詢的數字,或者查詢範圍為空。
c++
class solution
int row = (int)array.size(); // 獲取二維陣列的行
int column = (int)array[0].size(); // 獲取二維數字的列
// 定義起始搜尋點
int rowindex = 0;
int columnindex = column - 1;
while (rowindex <= row -1 && columnindex <= column -1 && columnindex >= 0 && rowindex >= 0) else
if (array[rowindex][columnindex] > target)else
}return isfind;
}};
Python 劍指offer(1)二維陣列的查詢
題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。環境python2.7.3 解 coding utf 8 class solution array 二維...
劍指offer 1 二維陣列查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。二維陣列是有序的,比如下面的資料 1 2 3 4 5 6 7 8 9可以直接利用左下角數字開始查詢 大於 比較...
劍指offer 1 二維陣列查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 首先是先模擬獲取隨機遞增陣列 public static int getarray int n,int m 初...