題目描述:
在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
思路:
1.暴力法
通過迴圈遍歷二維陣列,用陣列中的每乙個元素跟目標target進行比較,相同則返回true;否則返回false。時間複雜度:o(n^2)
2.左下角或右上角
由於二維陣列是有序的,一行的最左邊是最小的,一列的最下面是最大的。因此我們從左下角(右上角)開始查詢,以左下角為例(初始時i=行數-1,j=0)有三種情況:
(1)arr[i][j] < target,由於元素已經是一列的最下面,但仍然不夠,因此只能右移,即j++
(2)arr[i][j] > target,由於元素已經是一行的最左邊,但仍然太大,因此只能上移,即i- -
(2)arr[i][j] == target,找到目標,直接返回即可
時間複雜度:o(行+列)
**:
public
class
solution
else
if(array[i]
[j]> target)
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 思路有三種,...