劍指offer 二維陣列中查詢數

2021-10-01 15:04:27 字數 734 閱讀 6764

題目描述:

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

思路:

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