240 搜尋二維矩陣 II Java解法

2021-09-24 18:52:56 字數 1233 閱讀 7066

示例:現有矩陣 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...