搜尋二維矩陣 II

2021-10-03 23:15:40 字數 1227 閱讀 7546

編寫乙個高效的演算法來搜尋 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, 24],

[18, 21, 23, 26, 30] ]

給定 target = 5,返回true。

給定 target = 20,返回 false。

思路一:

是自己的思路。難道說我現在已經可以做到自己把題做出來的水平了??

因為收到二分查詢的啟發,所以我的思路是:每次都找二維陣列的中心位置,然後判斷它和target的關係,由於中心點的左上方一定比它小,右下方一定比它大。所以每次都能縮小一定空間,然後不停遞迴,當陣列只有乙個數就判斷它的大小是否等於目標值。

時間複雜度:o(mnlogmn)

空間複雜度:o(1)

class

solution

public

boolean

searchchild

(int rl,

int rh,

int cl,

int ch)

int r =

(rl+rh)/2

;int c =

(cl+ch)/2

;if(matrix[r]

[c]==target)

if(matrix[r]

[c]if(matrix[r]

[c]>target)

return

false;}

}

思路二:

逐漸逼近。

以右上角作為起點,比較當前值與target的大小。如果當前值更大,那就向左走;如果當前值更小,那就向下走;相等就返回true。

這樣的優點是簡單,而且耗時比我的還短。。。

class

solution

else

if(matrix[m]

[n]> target)

else

}return

false;}

}

搜尋二維矩陣 II

搜尋二維矩陣 ii 寫出乙個高效的演算法來搜尋m n矩陣中的值,返回這個值出現的次數。這個矩陣具有以下特性 您在真實的面試中是否遇到過這個題?yes 樣例考慮下列矩陣 1,3,5,7 2,4,7,8 3,5,9,10 給出target 3 返回2 思路 行和列都是有序的,如果以右上角為起點來判斷大小...

搜尋二維矩陣 II

寫出乙個高效的演算法來搜尋m n矩陣中的值,返回這個值出現的次數。這個矩陣具有以下特性 樣例考慮下列矩陣 1,3,5,7 2,4,7,8 3,5,9,10 給出target 3 返回2 解題思路 遞增陣列,思路為從左下或者右上開始查詢。此題,我從左下開始查詢,第乙個為3,num 然後向上移動一行,去...

搜尋二維矩陣 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,24 18,21,23,26,30 給定 target 5...