劍指Offer 面試題04 二維陣列中的查詢

2021-10-04 12:12:17 字數 1003 閱讀 3679

在乙個 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。

限制:0 <= n <= 1000

0 <= m <= 1000

我的思路,遍歷的優化,並不是簡單的遍歷所有的元素,如果出現大於target的元素,則需要進行跳轉到下一行。

從第一行第乙個向右邊遍歷,如果出現大於target的數字,跳轉到下一行,繼續遍歷這一行。

這道題比較簡單。

class solution 

return false;}}

左下角元素:為所在列最大元素,所在行最小元素。

因此如果target > 左下角元素,則可以排除這一整行!

繼續跳轉到下一行。!!!

很棒的解法!時間複雜度應該比我的小!

大佬鏈結?**:

劍指offer 面試題04 二維陣列查詢

二維陣列查詢 在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 ...

劍指offer 面試題3 二維數查詢 java實現

面試題3 題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。分析 首先選取陣列中右上角的數字。如果該數字等於要查詢的數字,查詢過程結束 如果該數字大於要查詢的數字,剔除這個數字所...

劍指offer 面試題04 二維陣列中的查詢

編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 每行的元素從左到右公升序排列。每列的元素從上到下公升序排列。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17...