1.問題:在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
2.思路:只看題目本身,可能不是這麼直觀(如果一眼就能得出規律的.....我覺得沒有看下去的必要了....),
首先我們可以自己來乙個符合題目條件的二維陣列,用來尋找規律:
從圖上可以很容易的看出來:在陣列中,無論是哪乙個數,它總是比右邊的數小(或等於),總是比上面的數大。其實題目本身就是想告訴我們這個。
除了上述之外,我們還需要知道: 對於 int a = },得出 a.length = 1 以及 a[0].length = 0 ; 對於 int a = {},得出 a.length = 0 以及 a[0].lenght = 0。這是用來判斷是否有必要查詢。
3.**:
publicboolean find(int target, int
array)
//2.獲取行和列的長度
int rowlen =array.length;
int collen = array[0].length;
//3.開始遍歷查詢,從左下角開始查詢,大於指定的整數:上移,小於指定的整數:下移
for(int i = rowlen-1,j = 0; i >= 0 && j
else
if(array[i][j] >target)
else
}//4.最後說明沒有找到
return
false
; }
二維陣列查詢(劍指offer)
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解法一 因為每一行都是遞增的,直接對每一行進行二分查詢即可。public class solution if ...
劍指offer 二維陣列的查詢
題目描述 書中第三題 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution return false 要自己處理輸入的版本 public sta...
劍指Offer 二維陣列的查詢
題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路 題目給定二維陣列按行遞增,按列遞增。1.錯誤 有一種很自然的想法就是分別按行和列定位,細想一下這是不行的 例如按行定位時,...