劍指offer 二維陣列中的查詢

2021-08-19 22:39:00 字數 656 閱讀 4664

題目:

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

思路:矩陣是有序的,左下,向右依次遞增,[m][n]

1. 可以從右上角開始找,只要小於,那麼這一列都不滿足,複雜度o(m + n)。

2. 每一行都是遞增的,那麼顯然可以用二分查詢,(優化:只要target< arr[i][mid],那麼以後就不用考慮mid以後的列)

複雜度o(mlgn) ,當m << n ,二分比較好。

class solution else if(target > array[row][col])else

}return false;

}public boolean find(int target, int array) else if(target > array[row][col])else

}return false;

}public boolean find(int target, int array)else if(target < array[i][mid])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 思路有三種,...