Leetcode 74 搜尋二維矩陣

2021-08-31 21:09:11 字數 1001 閱讀 6656

編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性:

示例 1:

輸入:matrix = [

[1, 3, 5, 7],

[10, 11, 16, 20],

[23, 30, 34, 50]

]target = 3輸出:true

示例 2:

輸入:matrix = [

[1, 3, 5, 7],

[10, 11, 16, 20],

[23, 30, 34, 50]

]target = 13輸出:false

在已排好序的陣列中找乙個數,找到則返回true,否則返回false,這是一道明顯的二分查詢的題目!初始左邊界left=0,右邊界為陣列的總個數right=matrixrowsize*matrixcolsize,mid定位二維陣列中的某個值可以使用除法以及求餘得到行列數,即行i=mid/matrixcolsize,列=mid%matrixcolsize。只要釐清這些,二分查詢二維陣列便也不難了!

此外,有幾個特殊情況需要注意一下:

空陣列直接返回false;

陣列中只有1個數,直接比較後返回true/false。

**如下:

bool searchmatrix(int** matrix, int matrixrowsize, int matrixcolsize, int target) 

if(matrix[0][0]==target)

int left=0,right=matrixrowsize*matrixcolsize,mid;

while(left+1target)

else

}return false;

}

LeetCode74 搜尋二維矩陣

題目大意 要求在乙個二維矩陣中搜尋乙個數,要求是時間盡可能少。說明 二維矩陣是從左到右,從上到下依次增大的。題目分析 本題如果用挨個遍歷的話,顯然沒有利用上矩陣中的有序關係。我的做法是 將target的值與每行的最後乙個數進行比較,若最後乙個數小於target,那麼還要往下搜尋,將搜尋的行邊界的上界...

leetcode 74 搜尋二維矩陣

編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 示例 1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,50 target 3輸出 true示例 2 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,...

leetcode74 搜尋二維矩陣

編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,50 target 3 輸出 true 示例 2...