矩阵的二分查找!【手绘漫画】图解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~

超全Python图像处理讲解(多图预警)
04-07 9万+
文章目录Pillow模块讲解一、Image模块1.1 、打开图片和显示图片1.2、创建一个简单的图像1.3、图像混合(1)透明度混合(2)遮罩混合1.4、图像缩放(1)按像素缩放(2)按尺寸缩放1.5、图像的剪切与粘贴(1)图像粘贴(2)裁剪图像1.4、图像旋转和格式转换(1)图像旋转(2)格式转换1.5、分离和合并(1)分离(2)合并、ImageFilter2.1、高斯模糊2.2、其它滤镜三、...
手绘漫画图解LeetCode之寻找峰值(LeetCode 162题)
文章目录图解LeetCode刷题计划1、写在前面2、题目3、正文4、代码 图解LeetCode刷题计划 1、写在前面 手绘漫画系列正式上线!!!“图解LeetCode刷题计划” 来了!!! 今天是第十期,争取每天一期,最多两天一期,欢迎大家监督我。。。 最近依旧是二分查找算法呢~ 使用新版的模板加上图解,相信你能更加理解二分法的使用!!! 2、题目 首先看一下题目, 分界条件就是左右两个数...
手绘漫画图解LeetCode之最长上升子序列(LeetCode300题),贪心算法 + 二分查找
文章目录图解LeetCode刷题计划1、写在前面2、题目3、正文4、代码5、讨论 图解LeetCode刷题计划 1、写在前面 手绘漫画系列正式上线!!!“图解LeetCode刷题计划” 来了!!! 今天是第五期,争取每天一期,最多两天一期,欢迎大家监督我。。。公众号监督最好!!! 今日是贪心算法,还有好吃的~ 2、题目 首先看一下题目, 应该第一时间先想到贪心算法,为什么呢? 如果要使上升...
再也不怕女朋友问我二分查找了!【手绘漫画图解二分查找(修订版)(LeetCode 704题)
文章目录图解算法与数据结构1、前言2、代码3、实例(LeetCode 704题) 图解算法与数据结构 1、前言 上次讲到的更的二分查找模板在很多地方让我使用起来不是特别的舒服,感谢B站上的y大佬,让我找到了一个新的模板!!! 下面一起来看看吧!!! 本次的模板应对重复元素也可以~ 2、代码 模板一: // C int lower_bound(int* nums, int numsSize...
LeetCode 74. 搜索矩阵二分查找
1. 题目 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 来源:力扣(Le...
??2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页