示例:現有矩陣 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]
]
這個題目的需要你從右上角的元素或者左下角的元素開始尋找。
如果目標比當前的元素大,那麼就把這一行排除;如果目標值比當前的元素小,那麼就把之一列給排除。
我把整個尋找的過程做了流程圖,方便大家理解:
理清了思想,我們來看看具體的**:
show the code.
class
solution
else
if(matrix.length ==0)
else
if(matrix[0]
.length ==0)
int len = matrix.length;
int rowlen = matrix[0]
.length;
int targetcol = rowlen -1;
int targetrow =0;
while
(targetrow < len && targetcol >=0)
else
if(matrix[targetrow]
[targetcol]
> target)
else
}return
false;}
}
時間就是o(m+n),具體來看看效果,如下截圖所示,還是不錯的。
240 搜尋二維矩陣 II
題目描述 編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 每行的元素從左到右公升序排列。每列的元素從上到下公升序排列。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,...
240 搜尋二維矩陣 II
240.搜尋二維矩陣 ii 編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 每行的元素從左到右公升序排列。每列的元素從上到下公升序排列。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,...
240 搜尋二維矩陣 II
編寫乙個高效的演算法來搜尋 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...