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

2021-10-06 18:08:10 字數 802 閱讀 6180

題目描述:

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

現有矩陣 matrix 如下:

[ [1, 4, 7, 11, 15],

[2, 5, 8, 12, 19],

[3, 6, 9, 16, 22],

[10, 13, 14, 17, 24],

[18, 21, 23, 26, 30]

]給定 target = 5,返回 true;給定 target = 20,返回 false。

分析思路:

此處重點在於二維矩陣中資料排列的規律,即從左至右遞增,從上至下遞增。因而從矩陣的右上角開始查詢效果最佳,每次比較時如果於目標值不匹配可以排除掉一行或一列的範圍。

**:

class

solution

//行數

int m = matrix.length;

//列數

int n = matrix[0]

.length;

int i =0;

int j = n-1;

while

(i < m && j >=0)

else

if(target > matrix[i]

[j])

else

}return

false;}

}

劍指4 二維陣列的查詢

題目 在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。1.判斷是否為空,除了mat.size 以外,不要忘了本身為乙個vector mat.empty mat 0 emp...

劍指offer4 二維陣列中查詢

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列也都是按照從上到下遞增的順序排序。完成乙個函式,輸入乙個二維陣列和乙個整數,判斷該陣列中是否含有該整數。最開始的想法肯定就是暴力搜尋了,雙重for迴圈,但是這樣就和題目中給定的遞增的條件沒什麼關係了,顯然不是題目的本意。於是,採取另一種辦法...

劍指offer 4 二維陣列中查詢

乙個n m的二維陣列中,每一行都按照從左往右遞增的順序排序 每一列都按照從上到下遞增的順序排序。實現乙個函式 輸入乙個這樣的陣列和乙個整數,判斷這個陣列中有沒有這個整數 思路 方法一 暴力遍歷矩陣 matrix o n m 方法二 矩陣逆時針旋轉40 矩陣,得到二叉搜尋樹 根節點對應的是 7 3 這...