圖解LeetCode刷題計劃
1、寫在前面
手繪漫畫系列正式上線!!!“圖解LeetCode刷題計劃” 來了!!!
今天是第十五期,爭取每天一期,最多兩天一期,歡迎大家監督我。。。
這一期是一個矩陣數組的二分查找!!!
2、題目
首先看一下題目,
這裏要先確定一個問題,每行的第一個整數大於前一行的最後一個整數!!!所以不要想得那麼簡單,但是也不難!
3、正文
一起來看:
首先這個題比較難的應該就是數組和矩陣的轉換問題了~公式比較固定,索引求商列數就是橫座標,索引求餘列數就是縱座標。
轉換成數組之後,就進行正常的二分查找就好了,模板之前講過了,套用就完了。
4、代碼
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
if(matrix.empty()||matrix[0].empty()) return false;
int m=matrix[0].size(),n=matrix.size();
int left=0;
int right=m*n-1;
while(left<right){
int mid=left+right>>1;
if(matrix[mid/m][mid%m]>=target){
right=mid;
}
else{
left=mid+1;
}
}
if(matrix[left/m][left%m]==target) return true;
return false;
}
};
如果有幸幫到你,請幫我點個【贊】,給個【關注】!如果能順帶【評論】給個鼓勵,我將不勝感激。
如果想要更多的資源,歡迎關注 @我是管小亮,文字強迫症MAX~