首页 > 其他分享 >力扣 74. 搜索二维矩阵

力扣 74. 搜索二维矩阵

时间:2022-11-13 16:56:39浏览次数:91  
标签:matrix int 矩阵 力扣 二维 74 target

74. 搜索二维矩阵

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
  • 每行中的整数从左到右按升序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

示例 1:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 100
  • -104 <= matrix[i][j], target <= 104

题解

第一次二分查找第一列的数据,确定列,找到最后一个满足val<=target的数据。然后对此列做二分查找,寻找是否存在target值。

查看代码
 class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int l=0,r=matrix.size()-1;//第一次二分
        while(l<r){
            int mid=(l+r+1)/2;
            if(matrix[mid][0]<=target){//寻找最后一个满足<=target的值
                l=mid;
            }
            else
                r=mid-1;
        }
        if(l<r)
            return false;
      
        int l2=0;//第二次二分
        r=matrix[l].size()-1;
        while(l2<=r){
            int mid=(l2+r)/2;
            if(matrix[l][mid]==target)
                return true;
            if(matrix[l][l2]<=target&&matrix[l][mid]>=target){
                r=mid-1;
            }
            else
                l2=mid+1;
        }
        return false;
    }
};

标签:matrix,int,矩阵,力扣,二维,74,target
From: https://www.cnblogs.com/fudanxi/p/16886271.html

相关文章

  • CF1746D题解
    很好的一道贪心题。首先对于每条路径,由于要最大化权值,每条路径肯定要延伸到叶子节点。切入点肯定在\(|c_u-c_v|\leq1\),也就是说由节点\(i\)延伸下去的路径要均匀分配......
  • 剑指 Offer 41. 数据流中的中位数 - 力扣(Leetcode)
    剑指Offer41.数据流中的中位数-力扣(Leetcode)分析维护两个堆,一个大根堆,一个小根堆。插入操作:当进行插入时,先判断大根堆中是否有元素,如果没有直接插入大根堆,若有......
  • 力扣35(java&python)-搜索插入位置(简单)
    题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法......
  • 剑指 Offer 59 - I. 滑动窗口的最大值 - 力扣(Leetcode)
    剑指Offer59-I.滑动窗口的最大值-力扣(Leetcode)一.分析方法一:数组长度为1e5,k的大小为1e4,因此直接暴力计算会TLE。我们可以思考一个更复杂的问题:询问任意区间中的......
  • 矩阵求逆之伴随矩阵法
    本文主要内容:伴随矩阵法矩阵求逆一、原理/知识点\[A^{-1}=\frac{1}{|A|}A^{*}\]|A|为矩阵A的行列式。若|A|=0,则矩阵A为奇异矩阵(SingularMatrix),不存在逆矩阵。A*为......
  • 251. Flatten 2D Vector 平铺矩阵
    Designandimplementaniteratortoflattena2dvector.Itshouldsupportthefollowingoperations: next and hasNext. Example:Vector2Diterator=newV......
  • CF1747E
    CF1747EListGeneration给定正整数$n$和$m$,统计满足下列要求的数组\(a\)的长度之和:\(a,b\)长度相同等于\(k\)$k\ge2$且$a_1=0,a_k=n,b_1=......
  • LG3174 [HAOI2009] 毛毛虫 题解
    LG3174[HAOI2009]毛毛虫对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大。给定一棵树,求其最大的毛毛虫的大小。容易......
  • 矩阵秩的定义和相关结论汇总
    (本来在CSDN写的,但是CSDN的公式编辑器一言难尽。。还是博客园的舒适) 秩的定义:对于矩阵$A\in\mathbb{R}^{m\timesn}$,以下陈述为真。(如果$A\inC^{m\timesn}$,则用共轭......
  • 矩阵求导
    一、标准方程法   二、求导加法三、特殊求导  四、转置求导五、系数求导 ......