劍指offer(1) 二維陣列中的查詢

2021-07-12 07:24:39 字數 1086 閱讀 6032

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

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 初...