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

2021-08-20 14:40:26 字數 604 閱讀 5684

題目描述

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

思路分析

由題意可知,把該陣列看做乙個矩陣,則左上角array[0][0]為最小元素,右下角array[n][n]為最大元素。

由此,選取左下角作為起點,開始遍歷,因為從左下往上是遞減,往右是遞增,可避免多餘的遍歷

**

public boolean find(int target, int  array) 

while (n>=0 && m<=array.length-1)

else if (target > array[m][n])

else

} return false;

}

結果

劍指offer系列之1 二維陣列中的查詢

題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 根據題目條件,陣列中的行和列都按照遞增的順序排序,所以使得這道題可以使用對角線的方法完成,可以從右上角的元素考慮,如果...

1 劍指offer 二維陣列查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。兩種思路 一種是 把每一行看成有序遞增的陣列,利用二分查詢,通過遍歷每一行得到答案,時間複雜度是nlogn p...

劍指offer 二維陣列查詢 1

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