劍指offer 二維陣列中的查詢

2021-09-13 10:06:17 字數 845 閱讀 5191

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

首先我們畫出乙個二維陣列來分析:

如圖:我們要找的target為7;

我們可以將查詢起始位置定在右上角的位置:array[0][col-1]

至於為什麼將起始位置定為右上角,因為右上角的數是整行最大的數,便於我們比較。

這時array[0][col-1]的值為4,小於7 ,因此第一行整行都比7小,直接拋棄,row--;

更新array[1][col-1]的值為8,大於7,因此我們向左走,col--;

這裡存在的特殊情況:如果array[0][0]target  說明target不在我們要查詢的陣列內,直接返回false;

**:

class solution 

if (targetarray[row - 1][col - 1])

int i = 0;

int j = col - 1;

while (i < row && j >= 0)

else if(array[i][j] < target)

else

}return false;

}};

劍指offer 二維陣列中查詢

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

劍指offer 二維陣列中查詢

從今天開始每天一題,除了節假日。在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution return false class solut...

劍指offer 二維陣列中查詢

要求如下 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 示例如下 7,1,2,8,9 2,4,9,12 4,7,10,13 6,8,11,15 思路有三種,...