搜索二维矩阵

news2024/9/20 14:53:00

题目链接

搜索二维矩阵

题目描述


注意点

  • 每行中的整数从左到右按非严格递增顺序排列
  • 每行的第一个整数大于前一行的最后一个整数
  • 1 <= matrix.length, matrix[0].length <= 100

解答思路

  • 先二分查找找到target所处的行,找到行后再二分查找找到target所处的列即可

代码

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int row = matrix.length;
        int col = matrix[0].length;
        int top = 0, bottom = row - 1;
        while (top <= bottom) {
            int rowMid = (top + bottom) / 2;
            if (matrix[rowMid][0] > target) {
                bottom = rowMid - 1;
            } else if (matrix[rowMid][col - 1] < target) {
                top = rowMid + 1;
            } else {
                int left = 0, right = col - 1;
                while (left <= right) {
                    int colMid = (left + right) / 2;
                    if (matrix[rowMid][colMid] == target) {
                        return true;
                    }
                    if (matrix[rowMid][colMid] > target) {
                        right = colMid - 1;
                    } else {
                        left = colMid + 1;
                    }
                }
                return false;
            }
        }
        return false;
    }
}

关键点

  • 二分查找的思想
  • 如果target介于某一行的最小值和最大值之间,且在该行没有找到target,说明二维矩阵中肯定没有target

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1537418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenHarmony实现一次开发多端部署分布式新闻客户端页面

分布式新闻客户端&#xff08;ArkTS&#xff09; 介绍 本篇Codelab基于栅格布局、设备管理和多端协同&#xff0c;实现一次开发&#xff0c;多端部署的分布式新闻客户端页面。主要包含以下功能&#xff1a; 展示新闻列表以及左右滑动切换新闻Tab。点击新闻展示新闻详情页。点…

防范IP地址被攻击的五种措施

IP地址被攻击是网络安全领域的一个常见问题&#xff0c;它可能导致数据泄露、网络瘫痪、恶意软件传播等一系列严重后果。为了保护网络安全&#xff0c;我们需要采取一系列防范措施。以下是五种有效的防范方法&#xff1a; 首先&#xff0c;加强个人设备的安全防护至关重要。我们…

使用npm创建一个全局的cli命令,就像vue-cli一样

我们用过vue-cli等工具包&#xff0c;全局安装之后&#xff0c;我们可以直接使用vue create等命令&#xff0c;实际上能够这样使用的原因&#xff0c;就是使用了package.json里面的bin字段注册命令。接下来就以一个脚本文件为例子为大家演示一下bin是如何发挥作用的。 创建项目…

C语言例3-33:从键盘输入一个正整数保存至int 型变量 num,输出由8~11构成的数(从低位、0号开始编号)

算法分析&#xff1a; 使变量num右移8位&#xff0c;将原来的8~11位移到低4位上构造一个低4位为1&#xff0c;其余位为0的整数&#xff08;0000 0000 0000 1111&#xff09;与变量num进行按位与运算 代码如下&#xff1a; #include<stdio.h> int main(void) {int num,…

优惠:阿里云4核16G服务器优惠价格26.52元1个月、149.00元半年

阿里云4核16G服务器优惠价格26.52元1个月、79.56元3个月、149.00元半年&#xff0c;配置为阿里云服务器ECS经济型e实例ecs.e-c1m4.xlarge&#xff0c;4核16G、按固定带宽 10Mbs、100GB ESSD Entry系统盘&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接打开如下图&a…

蓝桥杯 2022 省B 砍竹子

思路&#xff1a; 非常明显&#xff0c;这题是个贪心。因为这题是求最小操作次数&#xff0c;而且每次操作都会变小&#xff0c;所以肯定要优先操作大的元素&#xff0c;这样它变小之后才可能和其它元素一起操作以减少操作次数。 所以&#xff1a;建立两个数组&#xff0c;一…

面试题小结

一、什么是虚拟dom 描述真实dom的js对象。 二、DOM操作——怎样添加、移除、移动、复制、创建和查找节点 &#xff08;1&#xff09;创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节…

FPGA - AXI4_Lite(实现用户端与axi4_lite之间的交互逻辑)

在之前的博客中对AXI4总线进行了介绍&#xff08;FPGA-AXI4接口协议概述&#xff09;&#xff0c;在这篇博客中&#xff0c;实现用户端与axi4_lite之间的交互逻辑。 一&#xff0c; AXI4 1.1 AXI4 介绍 对AXI4总线简单介绍&#xff08;具体可见FPGA-AXI4接口协议概述&#…

[linux][调度] 内核抢占入门 —— 线程调度次数与 CONFIG_PREEMPTION

在工作中&#xff0c;如果你正在做开发的工作&#xff0c;正在在写代码&#xff0c;这个时候测试同事在测试过程中测出了问题&#xff0c;需要你来定位解决&#xff0c;那么你就应该先暂停写代码的工作&#xff0c;转而来定位解决测试的问题&#xff1b;如果你正在定位测试的问…

C++位运算符(<<,>>,|,^,)

简介 位运算符作用于整数类型的运算对象&#xff0c;并把运算对象看成是二进制位的集合。位运算符提供检查和设置二进制位的功能&#xff0c;一种名为bitset的标准库类型也可以表示任意大小的二进制集合&#xff0c;所以位运算符同样可以用于bitset类型。 如果运算对象是“小…

ShardingSphere啦啦啦

N年前写的ShardingSphere部分&#xff08;上&#xff09;_sharding 分库不能sum-CSDN博客 https://shardingsphere.apache.org/document/current/en/quick-start/ 高性能架构模式&#xff1a; 读写分离&#xff1a;读写操作分散到不同的节点上 (这句话 我悟了) 据SQL语义分…

磁盘在哪里清理?电脑磁盘清理的5个方法

当我们使用电脑时&#xff0c;随着时间的推移&#xff0c;磁盘空间可能会逐渐减少&#xff0c;这通常是因为各种临时文件、系统更新、浏览器缓存等原因造成的。磁盘空间不足可能会导致电脑性能下降&#xff0c;因此定期清理磁盘是非常必要的。那么&#xff0c;磁盘在哪里清理呢…

2核4G服务器优惠价格和性能测试,2024年

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

软件质量属性总结

软件系统的质量就是“软件系统与明确地和隐含地定义的需求相一致的程度”。更具体地说&#xff0c;软件系统质量是软件与明确地叙述的功能和性能需求文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。 根据GB/T 16260.1定义&#xff0c;从…

Java学习day1

打开命令提示符&#xff08;cmd&#xff09;窗口&#xff1a; 按下winR键&#xff0c;输入cmd 按回车或点击确定&#xff0c;打开cmd窗口 常用cmd命令 盘符名称冒号&#xff08;D:)&#xff1a;盘符切换&#xff0c;示例表示由C盘切换到D盘 dir&#xff1a;查看当前路径下的内…

元宇宙VR数字化艺术展降低办展成本

元宇宙AI时代已经来临&#xff0c;越来越多人期待在元宇宙数字空间搭建一个属于自己的虚拟展厅&#xff0c;元宇宙虚拟展厅搭建平台是VR公司深圳华锐视点为企业研发的可编辑工具&#xff0c;那么元宇宙虚拟展厅搭建平台有哪些新突破? 元宇宙虚拟展厅搭建平台采用了先进的web3D…

扫描二维码如何展现不同内容?内容组合排版展示的二维码怎么做?

扫描二维码来查看内容的方式已经被广泛使用&#xff0c;比如视频、文件、图片、音频、文本等类型的内容都可以应用二维码来提供展示。那么有些时候需要展示的内容类型较多&#xff0c;需要将不同的内容组合到一起展示&#xff0c;该如何来操作呢&#xff1f; 下面的内容学会之…

【QT入门】 Qt自定义信号后跨线程发送信号

往期回顾&#xff1a; 【QT入门】 lambda表达式(函数)详解-CSDN博客 【QT入门】 Qt槽函数五种常用写法介绍-CSDN博客 【QT入门】 Qt实现自定义信号-CSDN博客 【QT入门】 Qt自定义信号后跨线程发送信号 由于Qt的子线程是无法直接修改ui&#xff0c;需要发送信号到ui线程进行修改…

Windows Insiders WSLg Linux GUI App 支持尝鲜

2021 年 4 月 21 日&#xff0c;微软在 Developer Blogs 发布了 Windows 预览版 WSL&#xff08;Windows Linux 子系统&#xff09; 对 Linux GUI App 的支持的公告&#x1f517;&#xff0c;碰巧&#x1f600;我最近重装了波电脑&#xff0c;系统换成了 Windows Insiders&…

HCIP的学习(3)

网络类型及数据链路层协议 网络类型分类 P2P网络----点到点网络类型MA网络-----多点接入网络 BMA----广播型多点接入网络NBMA—非广播型多点接入网络&#xff08;快淘汰了&#xff09; 数据链路层协议 MA网络 以太网协议 特点&#xff1a;需要使用MAC地址对设备进行区分…