矩陣的二分查找!【手繪漫畫】圖解LeetCode之搜索二維矩陣(LeetCode 74)

在這裏插入圖片描述

圖解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~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章