【每日一题】74. 搜索二维矩阵

news2024/11/25 13:21:47

74. 搜索二维矩阵 - 力扣(LeetCode)

给你一个满足下述两条属性的 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:

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

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 100
  • -104 <= matrix[i][j], target <= 104
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int matrixSize = matrix.length;
        int matrixColSize = matrix[0].length;
        int len = matrixSize * matrixColSize;
        int right = len - 1;
        int left = 0;
        int mid = 0;
        int row ,col;
        while(left < right) {
            mid = (left+right) / 2;
            row = mid/matrixColSize;
            col = mid%matrixColSize;
            if(matrix[row][col] <= target)  left = mid+1;
            else if(matrix[row][col] > target) right = mid;
        }
        System.out.println(left);
        System.out.println(matrixColSize);
        row = left/matrixColSize;
        col = left%matrixColSize;
        if(matrix[row][col] == target) return true;
        left-=1;
        row = left/matrixColSize;
        col = left%matrixColSize;
        if(left >= 0)
        if(matrix[row][col] == target) return true;
        return false;
    }
}

   

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int matrixSize = matrix.length;
        int matrixColSize = matrix[0].length;
        int row = matrixSize-1;
        while(row >= 0 && matrix[row][0] > target) row-=1;
        if(row < 0 ) return false;
        int left = 0;
        int right = matrixColSize - 1;
        while(left < right) {
            int mid = (left+right) / 2;
            if(matrix[row][mid] > target) right = mid;
            else if(matrix[row][mid] <= target) left = mid+1;
        }
        System.out.println(left);
        System.out.println(row);
        if(matrix[row][left]==target || (left - 1 >= 0&&matrix[row][left-1]==target)) return true; 
        return false;
    }
}

        每日一题,今天是中等题。也是和二分有关。

        这是一道矩阵搜索的题目。从左到右,从上到下是递增的,又是搜索数,所以很快能够想到二分查找。

        那就是怎么二分查找的问题而已了。这里博主给出两种方法。

       第一种:把整个矩阵当作一个大数组,len = row*col。而二维矩阵的列和行地址无非就是除col和模col就可以得到了,那其他地方就当作正常的二分查找就可以了,具体的代码就是第一种方案。

        第二种:由于整个矩阵是递增的,也就是说,最左边的一定是最小的,那只要去比较最左边的数和target的值就可以了,找到最左边数小于target的那一行,那么target要么在那一行,要么就bu'jian

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

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

相关文章

探索 Java JDK 21 的新特性:一场深度解析之旅

探索 Java JDK 21 的新特性&#xff1a;一场深度解析之旅 探索 Java JDK 21 的新特性&#xff1a;一场深度解析之旅摘要 &#x1f680;引言 &#x1f310;正文 &#x1f4da;新特性概览 &#x1f195;1. 模式匹配的魅力 &#x1f9e9;2. 记录类型&#xff1a;轻松管理数据 &…

【深度学习】ONNX模型多线程快速部署【基础】

【深度学习】ONNX模型CPU多线程快速部署【基础】 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】ONNX模型CPU多线程快速部署【基础】前言搭建打包环境python多线程并发简单教程基本教程ONNX模型多线程并发 打包成可执行文件总结 前…

王道考研计算机组成原理

王道考研计算机组成原理 计算机系统概述计算机系统层次结构计算机的性能指标错题 数据的表示和运算数制与编码运算方法和运算电路浮点数的表示与运算 存储系统存储器概述主存储器主存储器与CPU的连接外部存储器高速缓冲存储器虚拟存储器 指令系统指令格式指令的寻址方式程序的机…

js加密双重保障之sm2国密

前言 ​ 最近看到一些项目里边有用到sm2/3/4国密加密算法&#xff0c;这里给大家简单介绍一下。 知识科普 SM2&#xff08;国密算法&#xff09;是一种非对称加密算法&#xff0c;由中国国家密码管理局&#xff08;NCC&#xff09;制定&#xff0c;并被广泛应用于中国的信息…

9月21日作业

登录代码&#xff1a; widget.h #ifndef REGISTER_H #define REGISTER_H#include <QWidget> #include <QDebug> #include <QSqlDatabase> #include <QSqlQuery> #include <QMessageBox>namespace Ui { class Register; }class Register : publ…

selenium自动化测试-获取动态页面小说

有的网站页面是动态加载的资源&#xff0c;使用bs4库只能获取静态页面内容&#xff0c;无法获取动态页面内容&#xff0c;通过selenium自动化测试工具可以获取动态页面内容。 参考之前的"bs4库爬取小说工具"文章代码&#xff0c;稍微修改下&#xff0c;就可以转成获…

9.21号作业

实现把注册的信息导入数据库中 second.h #ifndef SECOND_H #define SECOND_H#include <QWidget> #include <QDebug> namespace Ui { class Second; }class Second : public QWidget {Q_OBJECT public:void newslot(); public:explicit Second(QWidget *parent n…

机器学习西瓜书+南瓜书吃瓜教程学习笔记第四章决策树

1、算法原理 从逻辑角度&#xff0c;一堆if else语句的组合 从集合角度&#xff0c;根据某种准则划分特征空间 最终目的&#xff1a;将样本越分越“纯” 决策树是基于树结构来进行决策的 例如&#xff0c;我们对“这是好瓜吗&#xff1f;”这样的问题进行决策时&#xff0c;通…

QTC++ day12

注册登录界面 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QIcon> #include <QPushButton> #include <QLineEdit> #include <QLabel> #include <QDebug> #include <QMessageBox>//消息对话框类 #inc…

tracert 路由追踪原理

一、概念 就是利用ICMP(Internet Control Message Protocol)Internet控制报文协议 来追踪的计算机到目标计算机之间的所有路由器信息 二、不同平台下命令方式 windows下&#xff1a; tracert www.baidu.comlinux下 traceroute www.baidu.com 三、基于方式 UDP(user datagram pr…

【建议收藏】5个神级AI提示词网站,让AI工具效率拉满

HI&#xff0c;同学们&#xff0c;我是赤辰&#xff0c;本期是赤辰第9篇AI工具类教程&#xff0c;文章底部准备了粉丝福利&#xff0c;看完可以领取&#xff01; 今天给大家推荐五款非常好玩的AI提示词资源网站&#xff0c;完全免费&#xff0c;无需魔法&#xff0c;直接复制粘…

DIY 一个汽车方向盘游戏外设(MMOS OSW DIY)

OSW-MMOS直驱方向盘DIY过程记录 - 简书 (jianshu.com) DIY 一个汽车方向盘游戏外设&#xff08;MMOS OSW DIY&#xff09; 首先讲一下这个直驱系统大概的框架&#xff0c;首先是电脑&#xff0c;电脑里装MMOS的软件(这个软件国内高手把它汉化了的)&#xff0c;电脑通过USB线&a…

行业首款数字牙刷 F10 系列:笑容加带来的智能刷牙革命

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

为什么tomcat要自定义线程池实现?

背景 最近在研究tomcat调优的问题&#xff0c;开发人员做过的最多的tomcat调优想必就是线程池调优了&#xff0c;但是tomcat并没有使用jdk自己的线程池实现&#xff0c;而是自定了了线程池&#xff0c;自己实现了ThreadPoolExecutor类位于org.apache.tomcat.util.threads包下 …

数据湖存储在大模型中的应用

9月5日&#xff0c;浪潮信息新产品“互联网AIGC”行业巡展在深圳举行。本次巡展以“智算 开新局创新机”为主题&#xff0c;腾讯云存储受邀分享数据湖存储在大模型中的应用&#xff0c;并在展区对腾讯云存储解决方案进行了全面的展示&#xff0c;引来众多参会者围观。 ChatGPT…

A股20年数据回测结果mysql数据查询 phpadmin

编辑 数据库登录使用 1.登录mysql数据库管理台 phpadmin 访问地址&#xff1a; http://121.43.55.160:888/phpmyadmin_c77c64465f15a891/index.php 用户名&#xff1a;root 密码&#xff1a; root 2.切换到阿里云服务器 3 数据库密码 用户名&#xff1a;readonly 密码&am…

堆的OJ题

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️林 子       &#x1f6f0;️博客专栏&#xff1a;✈️ 小林的算法笔记       &#x1f6f0;️社区 :✈️ 进步学堂       &am…

【数据结构】二叉树的·深度优先遍历(前中后序遍历)and·广度优先(层序遍历)

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

2023最新Nmap安装和使用详解,超详细教程

【点击文章末尾卡片&#xff0c;先领资料再阅读哦~】&#x1f447; 文章目录 【点击文章末尾卡片&#xff0c;先领资料再阅读哦~】&#x1f447; Nmap概述功能概述运行方式 Nmap安装Nmap参数详解目标说明主机发现端口扫描端口说明和扫描顺序服务与版本探测脚本扫描操作系统探测…

C++输入流和输出流介绍

C 又可以称为“带类的 C”&#xff0c;即可以理解为 C 是 C 语言的基础上增加了面向对象&#xff08;类和对象&#xff09;。在此基础上&#xff0c;学过 C 语言的读者应该知道&#xff0c;它有一整套完成数据读写&#xff08;I/O&#xff09;的解决方案&#xff1a; 使用 scan…