劍指offer 二維陣列中的查詢

2022-07-12 09:54:08 字數 584 閱讀 7528

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

解法一:由於每一行都是有序的,我們可以針對每一行進行二分查詢,時間複雜度為o(mlog(n))

1

bool find(int target, vectorint> >array) else

if (array[i][mid] >target) else16}

17}18return

false;

解法二:觀察發現,我們可以將target與矩陣的左下角或者右上角的元素進行比較。

拿右上角的元素來說,右上角的元素在所在行是最大的,而在所在列是最小的,因此每進行一次比較就可以去除一行或者一列,不用再進行比較。

1

class

solution else

if (array[row][column] >target) else19}

20return

found;21}

22 };

劍指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 思路有三種,...