leetcode 74. 搜索二维矩阵(java)

搜索二维矩阵

  • leetcode 74. 搜索二维矩阵
    • 题目描述
    • 抽象BST
    • 代码演示
  • 抽象BST

leetcode 74. 搜索二维矩阵

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/search-a-2d-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:
在这里插入图片描述
输入: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
-10000 <= matrix[i][j], target <= 10000

抽象BST

我们可以将二维矩阵抽象成「以右上角为根的 BST」:
在这里插入图片描述
那么我们可以从根(右上角)开始搜索,如果当前的节点不等于目标值,可以按照树的搜索顺序进行:

当前节点「大于」目标值,搜索当前节点的「左子树」,也就是当前矩阵位置的「左方格子」,即 y—
当前节点「小于」目标值,搜索当前节点的「右子树」,也就是当前矩阵位置的「下方格子」,即 x++

代码演示

public boolean searchMatrix(int[][] matrix, int target) {if (matrix.length == 0 || matrix[0].length == 0){return false;}int n = matrix.length;int m = matrix[0].length;int c = m - 1;int r = 0;while (r < n && c >= 0){if (matrix[r][c] < target){r++;} else if (matrix[r][c] > target) {c--;}else{return true;}}return false;}

抽象BST

剑指 Offer 04. 二维数组中的查找

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Django学习】(十二)GenericAPIView_过滤_排序_分页

上篇文章初步接触了GenericAPIView&#xff0c;这次来更加深入的学习它&#xff0c;了解里面的一些使用和方法 get_object&#xff1a;源码中&#xff1a;处理查询集&#xff0c;并含有所需要得pk值,lookup_fieldget_queryset&#xff1a;源码中&#xff1a;先判断queryset是否…

4.3Java EE——一对多查询

用户与订单关联关系图​​​​​​​ 与一对一的关联关系相比&#xff0c;接触更多的关联关系是一对多&#xff08;或多对一&#xff09;。例如一个用户可以有多个订单&#xff0c;多个订单也可以归一个用户所有。用户和订单的关联关系如图。 一、<collection>元素 在MyB…

Xcode doesn’t support iPhone’s iOS 15.7.3 (19H307).

Xcode真机调试时&#xff0c;出现了Xcode doesn’t support iPhone’s iOS 15.7.3 (19H307).&#xff0c;Xcode不支持iPhone的版本。升级Xcode太耗时&#xff0c;用了找支持SDK文件方式解决了此问题。下图是本地的SDK支持文件。 从GitHub下载了15.7的设备支持文件&#xff0c…

安全狗亮相2023第二届上海网络安全博览会

7月5日至7日&#xff0c;“新耀东方-2023第二届上海网络安全博览会暨高峰论坛”在上海顺利举办。此次大会由上海市信息网络安全管理协会、国家计算机网络应急技术处理协调中心上海分中心、(ISC)2上海分会、上海市普陀区科学技术委员会、上海市网络安全产业示范园共同主办。 作…

ABAP调用阿里云接口-短信服务-HTTP协议及签名(abap版本)<转载>

原文链接&#xff1a;https://blog.csdn.net/xiefireworks/article/details/113037650 阿里云接口文档请参考官网地址 https://help.aliyun.com/document_detail/59210.html?spm5176.8195934.J_5834642020.5.11ba4378DLVi4O 此处仅介绍使用ABAP完成阿里云短信服务签名请求的…

BCD码与二进制码的区别与联系

二进制数是整串二进制编码表示一个整数&#xff0c;BCD码是用二进制码逐一表示0&#xff5e;9的整数。 (本笔记适合对整数进制编码有一定了解&#xff0c;熟悉二进制数编码的编程爱好的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org…

easyphp

说起来是easy但是&#xff0c;代码审计对于我来说有点小难 唯一觉得好的地方是因为基本上每一步都有回显&#xff0c;可以依照回显一步步注入 <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 60…

图灵奖得主Geoffrey Hinton:我的五十年深度学习生涯与研究心法

本文介绍了Hinton非常坦诚地分享了自己的学术生涯&#xff0c;深度学习的未来和研究心得。 他从未正式上过计算机课程&#xff0c;本科在剑桥大学读的是生理学和物理学&#xff0c;期间曾转向哲学&#xff0c;但最终拿到的却是心理学方向的学士学位&#xff1b;他曾因为一度厌学…

Spring Boot 日志文件

目录 1.⽇志有什么⽤&#xff1f; 2.⽇志怎么⽤&#xff1f; 3.自定义日志打印 使⽤⽇志对象打印⽇志 日志格式说明 ⽇志级别 ⽇志使⽤ ⽇志持久化 设置日志的保存路径 设置 日志文件的存储文件名 更简单的⽇志输出—lombok 1、 添加 lombok 框架⽀持。 2、 使⽤ …

postgresql regular lock常规锁 烤的内嫩外焦,入口即化

​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 介绍 常规锁&#xff0c;主要用于数据库对象的加锁&#xff0c…

linux命令与shell编程

文章目录 一、概念linux内存嵌入式嵌入式层次图判断小端和大端 二、linux系统操作命令ls查看cd 命令pwd命令touch 创建文件mkdir 创建目录chmod 修改权限man命令cp 拷贝mv 移动rm命令cat命令echo 命令tty命令->查看当前终端号clear 命令ldd命令 ->查看文件依赖哪些库prin…

阿里云ECS云服务器的云盘使用

在我阿里云控制台上&#xff0c;可以看到有额外的磁盘&#xff08;2个实例&#xff0c;3个磁盘&#xff09; 找到对应云服务实例&#xff0c;看到了云盘信息 状态显示的挂接点是&#xff1a;/dev/xvdb 进入服务器却无法找到&#xff0c;也无法挂载 执行命令&#xff1a;fdisk …