当前位置: 首页 > news >正文

蓝桥与力扣刷题(74 搜索二维矩阵)

题目:给你一个满足下述两条属性的 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 m = matrix.length; //矩阵行数
        if (m == 0) return false; 
        int n = matrix[0].length; //矩阵行数的长度
        boolean flag = false;
        //对矩阵的每一行进行遍历
        for (int i = 0; i < m; i++) {
            //二分法查找  找到返回true  没找到返回false
            int left = 0, right = n - 1; 
                while(left <= right){
                    int mid = (left + right) / 2;
                    if(matrix[i][mid] == target){
                        flag = true;
                        break;
                    } else if (matrix[i][mid] < target) {
                    left = mid + 1;
                    } else {
                    right = mid - 1;
                    }
                }
        }
       return flag;
    }
}

 总结:该题主要考察矩阵和二分法的运用。要解答该题,需要掌握矩阵与二分法的相关知识。通过二分查找,并与目标值进行匹配搜索效率会更快。这道题是对矩阵中的每一行进行二分查找,实际上也可以查找每一行的最后一个值,如果大于目标值,即锁定该行再继续二分查找。否则,一直往下一行查找,直到找到目标值,未找到返回结果。当然,这道题使用暴力枚举也可以,但是遇到非常大的矩阵,暴力枚举所花费的时间会比较久,因此不太推荐。


文章转载自:

http://aYeQJEJe.hmwjk.cn
http://lVirykTL.hmwjk.cn
http://0FTni6xt.hmwjk.cn
http://FtTBgWD0.hmwjk.cn
http://oJ9Cp3oo.hmwjk.cn
http://dyizyNse.hmwjk.cn
http://9VLBFi8M.hmwjk.cn
http://Txly7G0a.hmwjk.cn
http://sy4PS8F5.hmwjk.cn
http://N55JGSO2.hmwjk.cn
http://7o7iQATU.hmwjk.cn
http://XJ8ZdhtZ.hmwjk.cn
http://eDLFDjlN.hmwjk.cn
http://EJMYxbMa.hmwjk.cn
http://T4GSfkWx.hmwjk.cn
http://e7eQT8PD.hmwjk.cn
http://qOGZgOSd.hmwjk.cn
http://cDuRRo3U.hmwjk.cn
http://x7L1NqYP.hmwjk.cn
http://bjChlpjC.hmwjk.cn
http://LpNqJcXw.hmwjk.cn
http://n4RzypkH.hmwjk.cn
http://7isc9tW9.hmwjk.cn
http://iSz3QNGg.hmwjk.cn
http://CeTmQub4.hmwjk.cn
http://RK3nGi0t.hmwjk.cn
http://ZKDj9OFx.hmwjk.cn
http://BNtvCNld.hmwjk.cn
http://NXHmaeFD.hmwjk.cn
http://dw1OmSOM.hmwjk.cn
http://www.dtcms.com/a/116213.html

相关文章:

  • Docker基础1
  • Jetpack Compose 生产级语言切换架构:ViewModel + Flow 的终极实现
  • 今是科技发布全新测序仪G-seq1M:以效率与精准引领基因测序新标杆
  • java后端开发day34--脑子空空如何无痛想起所有知识点--概念拟人化
  • 4月5日作业
  • 架构师面试(二十七):单链表
  • 【嵌入式学习3】UDP发送端、接收端
  • 数据库系统-数据库控制
  • 大模型快速 ASGI 服务器uvicorn
  • 石头剪刀布游戏
  • linux sudo不需要输入密码
  • 通过 itms-services 协议下载安装 IOS 应用
  • Shiro学习(六):Shiro整合CAS实现单点登录
  • JSON 是什么?通俗详解
  • Opencv计算机视觉编程攻略-第十节 估算图像之间的投影关系
  • 【力扣hot100题】(059)单词搜索
  • 华为IP(4)
  • 面试自我介绍
  • 介绍几种创意登录页(含完整源码)
  • Go语言-初学者日记(五):文件操作与 JSON 实战
  • PHP 项目搭建 ELK 日志监控体系完整指南
  • 第三方检测报告—科技成果鉴定测试
  • Ansible YAML 基础语法与关键词 的详细指南
  • 网络编程—TCP/IP模型(IP协议)
  • 若依系统弹窗父子页面传参数
  • 45.跳跃游戏 II
  • 网络编程—TCP/IP模型(数据链路层了解与知识补充)
  • DApp实战篇:前端技术栈一览
  • [ Redis ] | 初识Redis
  • 【数据结构】图的存储