在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
乙個從左到右,從上到下遞增的二維陣列,我們可以從陣列的左下角或者右上角開始遍歷,這樣當我們將target與遍歷的元素做比較後(以左下角為例),如果比target小,我們可以向右遍歷,如果比target大,我們可以向上遍歷。
對於有序陣列我們可以採用二分法的方式查詢,我們可以首先查詢乙個橫列上的區間[a, b], a < target && b > target,然後在這些豎列上二分查詢target,當然演算法好像有些複雜。
public
class
solution
if(array.length == 0 || array[0].length == 0)
if(target < array[0][0])
int i = array.length - 1;
int j = 0;
while(i >= 0 && j < array[array.length - 1].length)else
if(target > array[i][j])else
}return
false;
}}
二維陣列查詢
近日微博上看到乙個題目,二維陣列查詢 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。例如下面的二維陣列就是每行 每列都遞增排序。如果在這個陣列中查詢數字7,則返回true 如果查詢...
二維陣列查詢
天氣變化大,生病折騰了1個禮拜,寫篇部落格壓壓驚。題目源自於清明假期前夕舍友春招的筆試題,後來得知是劍指offer上的一道題,書上應該有解題思路啥的。題目重述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,...
二維陣列查詢
題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請 完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解題思路 按照一般搜尋二維陣列的方法,從左到右,從上到下,比較難根據這個陣列的特點進行快速搜尋。可以從 右到左,從上到下,...