leetcode74 搜尋二維矩陣

2021-10-02 01:16:54 字數 1361 閱讀 3404

兩次二分查詢

整體思路先根據二分查詢找出這個數應該在哪一行 再根據二分查詢在這一行中查詢

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,...