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

74. 搜索二维矩阵

时间:2023-09-29 14:57:51浏览次数:43  
标签:return target int 矩阵 mid else 二维 74 matrix

给你一个满足下述两条属性的 m x n 整数矩阵:

每行中的整数从左到右按非递减顺序排列。
每行的第一个整数大于前一行的最后一个整数。
给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

示例 1:


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

> 代码


class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        //纵向的二分
        int t = -1;
        int u = matrix.size();
        while(t + 1 != u){
            int mid = t + (u - t)/2;
            if(matrix[mid][0] == target){
                return true;
            }
            else if(matrix[mid][0] < target){
                t = mid;
            }
            else{
                u = mid;
            }
        }
        if(t == -1) return false;
        
        //横向的二分
        int l = -1;
        int r = matrix[t].size();
        while(l + 1 != r){
            int mid = l +  (r - l)/2;
            if(matrix[t][mid] == target) return true;
            else if(matrix[t][mid] < target){
                l = mid;
            }
            else{
                r = mid;
            }
        }
        if(r == matrix[t].size()) return false;

        return matrix[t][r] == target ? 1:0;
    }
};

标签:return,target,int,矩阵,mid,else,二维,74,matrix
From: https://www.cnblogs.com/lihaoxiang/p/17736989.html

相关文章

  • 矩阵学习笔记
    矩阵是一种数学概念,在\(OI\)中有着重要应用。一个矩阵有行,列,以及里面的数字。如图便是一个\(2\)行\(3\)列的矩阵:\[\begin{bmatrix}1&2&3\\4&5&6\\\end{bmatrix}\]矩阵数乘:\(\lambdaA\)就是将\(\lambda\)依次乘进每个矩阵。矩阵乘法:\(A\timesB=C\),那么\(C_{......
  • 向量化实现矩阵运算优化(一)
    xsimd简介  xsimd是C++的一个开源simd库,实现了对常见simd指令的封装,从而使得simd的操作更为简单。接下来先从两个简单的例子来入门xsimd。voidaverage(conststd::vector<double>&v1,conststd::vector<double>&v2,std::vector<double>&v){intn=v.size();......
  • 矩阵乘法
    别人的博客Luogu-P3390【模板】矩阵快速幂#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;#definedebug(x)cout<<#x<<"="<<x<<endl;constintN=105,M=1e9+7;intn;llk;inlinellread(){ lls=0,......
  • 动态规划——矩阵优化DP 学习笔记
    动态规划——矩阵优化DP学习笔记前置知识:矩阵、矩阵乘法。矩阵乘法优化线性递推斐波那契数列在斐波那契数列当中,\(f_1=f_2=1\),\(f_i=f_{i-1}+f_{i-2}\),求\(f_n\)。而分析式子可以知道,求\(f_k\)仅与\(f_{k-1}\)和\(f_{k-2}\)有关;所以我们设矩阵\(F_......
  • Codeforces Round 742 Div2 A-D题解
    CodeforcesRound742Div2A-D题解A.DominoDisaster这题就是说给出一些2x1tile,然后给出2xn的第一行构造,问第二行这个刚开始想着是啥dp,一看那么多人过了果断改思路,发现这题就是个模拟题,就是把U换成D,D换成U,L和R不影响,然后输出就行了代码#include<bits/stdc++.h>using......
  • mac M2 python 逆向解析二维码
    首先使用大家推荐的zbarmacm2python3.8安装无法解析动态库安装arch-arm64brewinstallzbarpython使用frompyzbar.pyzbarimportdecodefromPILimportImageif__name__=='__main__':file='qrcode_prod/492C230613047659_XCXM015492.png'......
  • Comparing QCN9274 and QCN9074: WPA3 Support in Qualcomm Wi-Fi Chips
    EnhancingIndustrialWirelessSecuritywithWPA3-CapableRouterBoardsandNetworkCardsIntoday'sindustriallandscape,wirelessconnectivityplaysapivotalroleinoptimizingoperations,monitoringequipment,andfacilitatingdataexchange.Howeve......
  • thinkphp lang命令执行--struts2 代码执行--(QVD-2022-46174)&&(CVE-2020-17530)&&(CV
    thinkphplang命令执行--struts2代码执行--(QVD-2022-46174)&&(CVE-2020-17530)&&(CVE-2021-31805)thinkphplang命令执行(QVD-2022-46174)影响范围6.0.1<=ThinkPHP<=6.0.13ThinkPHP5.0.xThinkPHP5.1.x漏洞复现POC:?+config-create+/&lang=../../../../......
  • 论文研读_通过具有可扩展的小子种群的协方差矩阵适应性进化策略解决大规模多目标优化
    论文研读_通过具有可扩展的小子种群的协方差矩阵适应性进化策略解决大规模多目标优化问题创新点随着目标或决策变量的数量增加,收敛性和多样性之间的冲突变得更为严重,因此在它们之间取得平衡变得越来越困难。此时S3-CMA-ES,它使用一系列子种群来近似LSMOPs的PFs,并强调不同子种......
  • (转)图的存储结构|邻接矩阵、邻接表、十字链表、邻接多重表、边集数组
    原文:https://juejin.cn/post/6996132859001962504?searchId=20230925172238C35D1579B2CBC3D2F78A7.4图的存储结构图的存储结构相较线性表与树来说就更加复杂了。首先,我们口头上说的“顶点的位置”或“邻接点的位置”只是一个相对的概念。其实从图的逻辑结构定义来看,图上任何......