劍指offer第一題 二維陣列中的查詢

2021-09-11 22:10:16 字數 504 閱讀 6004

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

1.vector的用法

vector的查詢

bool find(vector> array,int target)

if(array[i][j]> target)

else if(array[i][j]上面是從左下角開始,如果target比其大,右移,否則上移,因為陣列是有序的。

另外一種二分查詢的方式想得出來但是沒想明白咋實現的,看到下面討論區中有,也做記錄。

class solution

else if(target要注意的是,遍歷時要重新初始化,而且二分查詢的時候,要讓left=mid+1,如果讓left=mid,可能永遠滿足不了left<=right的退出條件,二分查詢要注意退出條件。其實也有可以改進的,只要target比mid要小,之後所有的mid都自動縮小一半就好

劍指Offer第一題 二維陣列中的查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。採用 劍指offer 書中的思路 首先選取陣列右上角 或者是左下角,同理 的數字,如果該數字等於要查詢的數字,...

劍指offer 二維陣列查詢 每日一題

在乙個二維陣列中,每一行都按照從左到右遞增的順序排列,每一列都按照從上到下遞增順序排列。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。測試用例 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 查詢7輸出 9,因為9 4 2 1 第三行第二列 根...

《劍指offer》二維陣列題

本文完全自己學習記錄,以便將來回顧 未排版 思路 從最後一列的首行開始與number比較 比如上圖中的數字9 若大於該number,則此列可跳過,繼續比較前面一列首行數字,若大於number繼續上一步,若小於,則看此列下一行數字,若找到則true,若此列遇到大於number的數字,還未找到numbe...