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

2021-06-13 16:05:33 字數 693 閱讀 1860

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

1   2  8  9

2  4  9  12

4  7  10  13

6  8  11  15

演算法:首先選取陣列中右上角的數字,如果該數字等於要查詢的數字,查詢過程結束;如果該數字大於要查詢的數字,剔除這個數字所在的列;如果該數字小於要查詢的數字,剔除該數字所在的行。也就是說如果要查詢的數字不在陣列的右上角,則每一次都在陣列的查詢範圍中剔除一行或者一列,這樣每一步都可以縮小查詢的範圍,直到找到要查詢的數字,或者查詢範圍為空。

下面是我的實現

package offer.giveme;

//矩陣中查詢數字

public class findinpartiallysortedmatrix

else if(num[row][column]>key)

else}}

return found;

} public static void main(string args) ,,,};

system.out.println(new findinpartiallysortedmatrix().find(num, 4, 4,100));

}}

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

之前寫過一些劍指offer的題目,但是遇到vector的時候都會跳過因為並不清楚vector容器到底是個什麼,前幾天在對vector進行簡單的了解之後,理解不是很深刻,但是可以使用vector來做題了。題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從...

41 劍指Offer之二維陣列中的查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。很明顯,由於該二維陣列上到下遞增,左到右遞增的特殊性,遍歷整個矩陣進行查詢不是該題目的意圖所在。總結規律我們可...

Java演算法 劍指offer 二維陣列中的查詢

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。方案一 這個是最暴力的直接遍歷。public class maintest return false 方案二 利用二維陣列由上到下,由...