兩次二分查詢
整體思路先根據二分查詢找出這個數應該在哪一行 再根據二分查詢在這一行中查詢
bool searchmatrix
(int
** matrix,
int matrixsize,
int* matrixcolsize,
int target)
else
if(matrix[mid][0
]low=mid+1;
else
high=mid-1;
} targetrow=mid;
if(matrix[targetrow][0
]>target&&targetrow>0)
targetrow-=1
;printf
("%d\n"
,targetrow)
; low=0;
high=
*matrixcolsize-1;
while
(low<=high)
//在這行中查詢是否存在這個數
else
if(matrix[targetrow]
[mid]
low=mid+1;
else
high=mid-1;
}return flag;
}
一次二分查詢附上官方題解解釋
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,...
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,...