編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性:
示例 1:
輸入:matrix = [示例 2:[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]target = 3輸出:true
輸入:matrix = [在已排好序的陣列中找乙個數,找到則返回true,否則返回false,這是一道明顯的二分查詢的題目!初始左邊界left=0,右邊界為陣列的總個數right=matrixrowsize*matrixcolsize,mid定位二維陣列中的某個值可以使用除法以及求餘得到行列數,即行i=mid/matrixcolsize,列=mid%matrixcolsize。只要釐清這些,二分查詢二維陣列便也不難了![1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]target = 13輸出:false
此外,有幾個特殊情況需要注意一下:
空陣列直接返回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...