leetcode 74. Search a 2D Matrix(二维数组中搜索元素)

百度地图接口 # 接口示例 import urllib.parse import urllib.request import json # http://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&region=北京&output=json&ak=您的ak //GET请求 args = {'query':'ATM机',... 阅读详情

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

Integers in each row are sorted from left to right.
The first integer of each row is greater than the last integer of the previous row.
Example 1:

Input:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 3
Output: true

给出一个目标值,在矩阵中检索是否有这个元素,有的话返回true,没有返回false

思路:
二维binary search
先在y轴二分搜索,可以和每列第一个元素比,也可以和最后一个元素比,这里和最后一个元素比
这里把最后一列提出来是7,20,50

然后在x轴二分法搜索

不同的是y轴二分法时 while 的条件是left < right,
x轴二分法时 while 的条件是 left <= right,
因为y轴二分搜索是为了锁定target所在行,不需要进一步判断(left == right时没有return跳出)
而x轴二分搜索在left == right仍然需要判断该元素是不是target

    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length;
        int n = matrix[0].length;
        int row = 0;
        int left = 0;
        int right = m - 1;
        
        while(left < right) {
            int mid = left + (right - left) / 2;
            if(target <= matrix[mid][n-1]) {
                right = mid;
            } else {
                left = mid + 1;
            }
        }
        
        row = left;
        left = 0;
        right = n - 1;
        
        while(left <= right) {
            int mid = left + (right - left) / 2;
            if(matrix[row][mid] == target) return true;
            if(matrix[row][mid] > target) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        
        return false;
    }
华为鲲鹏920-4826/Intel-Platinum-9242/Intel-E5-2680V2双路计算服务器的LinpackHPL benchmark对比评测 内含华为鲲鹏920-4826/Intel-Platinum-9242/Intel-E5-2680V2双路计算服务器的LinpackHPL benchmark对比评测图,含gcc/icc结果。需要积分下载些东西,感谢理解支持! 立即下载

相关推荐

百度地图输入提示接口完整demo

百度地图地址提示完整demo,下载可以输入你的ak码直接可以运行,对于想了解学习百度地图接口的同学有很大帮助

leetcode#74 Search a 2D Matrix

leetcode心得 #74. Search a 2D Matrix 用两次binary search 用一次binary search

weixin_28739073的博客 191

ActualSearchReplace_v2.86_HA_XiaZaiBa.zip

ActualSearchReplace,在选定目录中的所有文件内实现文本的查找/替换工具,很好的啊啊啊啊啊啊啊啊啊。

leetcode 74. Search a 2D Matrix-矩阵搜索|二分查找

原题链接:74. Search a 2D Matrix 【思路1-Java】二分查找|T=O(logn*m)|M=O(1) 这种思路是利用一位数组二分查找的思想,先计算出数组总个数,并计算出中间元素的下标。将这个中间元素坐标映射成二维数组坐标: public class Solution { public boolean searchMatrix(int[][] matrix, in

hdtopku 1445

EFK-release-1.13分支镜像3

K8s上部署EFK的镜像,这些镜像是以github官方地址build的,包括alpine-3.6、elasticsearch-v6.3.0、fluentd-elasticsearch-v2.2.0、kibana-oss-6.3.2四个镜像及其yaml文件。 这些镜像是以github release-1.13 build出来的。由于文件比较大,分了7个文件出来,分批上传

多普勒效应及多普勒频移的简单推导

多普勒频移的简单推导

m0_47867419的博客 3万+

LeetCode74——Search a 2D Matrix

LeetCode74——Search a 2D Matrix 二维数组查找问题,二重循环暴力搜索肯定是超时的,好在二维数组有一定的规律: 1.每一行从左到右是非递减的 2.每一列从上到下是非递减的 那么根据这个条件我们很容易得出: 1.给定一个数 number 如果他比矩阵中的某个数nums[i][j]大,则存在两种情况: 这个数要么在nums[i][j]的右侧,要么在nums

上善若水 1432

从原理到实现:在《图灵完备》中构建一个144*256像素、1536时钟刻/帧的视频播放器

本文详细解析了在《图灵完备》游戏中构建144*256像素、1536时钟刻/帧视频播放器的全过程。从图灵完备原理出发,通过分层架构设计、视频数据预处理和关键电路实现,展示了如何用基础电子元件模拟现代显卡功能。重点介绍了像素坐标定位系统和颜色数据处理流水线的优化方案,为游戏内复杂电子系统设计提供实践指导。

weixin_42520025的博客 445

LeetCode 74 / 240. Search a 2D Matrix I+II

74.Search a 2D Matrix 看起来是2d的问题,但是实际上依旧可以用一维二分的思想来做,无非就是计算横纵坐标而已。 下面用了开区间写法,闭区间写法也是okay的。 class Solution { public: bool searchMatrix(vector<vector<int>>& m...

weixin_30507269的博客 196

图自编码器(GAE)与变分图自编码器(VGAE)

在学习图自编码器之前先了解一下自编码器与变分自编码器。

小鱼的小窝 1万+

sid图像数据_遥感影像数据

影像数据基本概念影像数据是由卫星或飞机上的成像系统获得的影像,多为遥感影像数据。影像数据的每个像元都有一个值,表示传感器探测到像素对应地面面积上目标物的电磁辐射强度,也叫亮度值、灰度值。SuperMap支持的影像数据格式有:*.img、*.tif、*.tiff、*.bmp、*.jpg、*.png、*.gif、*.raw、*.sid等。计算机以二进制记录数据,所以其量化的等级以二进制来划分,即2n。...

weixin_39534395的博客 1626

【LeetCode & 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...

【LeetCode &amp; 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列) 【LeetCode &amp; 剑指offer 刷题笔记】目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that...

技术改变世界 1314

R语言分类变量的统计描述

三篇介绍了连续变量的统计描述的R语言相关函数,计算数值的相关统计指标。本文介绍分类变量的统计描述及如何在R语言中实现。 不同于连续变量,分类变量的统计描述主要是汇总分类变量各类别例数及百分比。 1、table()函数 ...

zsc943290710的博客 1万+

Leetcode 74搜索二维矩阵 search a 2D matrix

给你一个整数 target ,如果 target 在矩阵中,返回 true;否则,返回 false。

imlxinyu的博客 772

Kotlin原生AI Agent框架Koog:为JVM开发者打造类型安全、企业级智能体开发方案

AI Agent作为当前人工智能应用开发的核心范式,通过赋予大语言模型(LLM)自主规划、工具调用和环境交互能力,正在重塑软件智能化进程。其技术原理基于智能体架构,通过提示工程、函数调用和记忆机制,将LLM从单纯的文本生成器转变为能够执行复杂任务的工作流引擎。这一技术价值在于显著降低了构建智能应用的开发门槛,同时保持了高度的灵活性和可扩展性。在实际应用场景中,AI Agent广泛落地于智能客服、代码助手、数据分析自动化等领域,成为连接大模型能力与具体业务需求的关键桥梁。本文聚焦的Koog框架,正是针对JVM

weixin_42594419的博客 395

三维重建/SLAM笔记_最佳学习路线/攻略

本文目的 学习三维重建,需要不少知识,而知识之间又存在不同的依赖关系,为了后来人能少走弯路,也为了对自己的知识框架系统总结,特记录自己的学习路线。 学习心得 关于读书,了解基础知识是一方面,产生疑问也是一方面,为以后知道学习什么留下印象; 一回生,二回熟,看不懂时,大多是因为先验知识不够,没关系,多查多想,总会搞懂的。 学习路线 1.计算机图形学基础(OpenGL基础版)(徐文鹏 清...

惊鸿一博 3291

LeetCode 74. Search a 2D Matrix

整体来说,你一开始提出的"先锁定行,再二分列"的思路在大方向上是完全正确的,只需要在边界和下标上更严谨,同时理解官方常用的一维化写法,可以在面试中灵活切换表达。

六六哥的博客 777

XCP实战系列介绍09-基于Vehicle Spy进行XCP测量步骤详解

详细介绍如何使用Vehicle Spy进行XCP测量

initiallizer的博客 1391

【LeetCode】解题74:Search a 2D Matrix

LeetCode解题 74:Search a 2D Matrix Problem 74: Search a 2D Matrix [Medium]解题思路Solution (Java) Problem 74: Search a 2D Matrix [Medium] Write an efficient algorithm that searches for a value in an m x n m...

Fayedily的博客 243

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LeetCode 74. Search a 2D Matrix 题解

本题是二分查找的经典变体问题,主要考察对二分查找算法的理解和应用。通过将二维矩阵看作一维有序数组,我们可以使用二分查找来高效地定位目标值。二分查找的核心思想是:使用两个指针分别指向查找区间的两端,计算中间位置,比较中间元素与目标值的大小,根据比较结果缩小查找区间,直到找到目标值或确定目标值不存在。这种方法的时间复杂度为 O(log(m * n)),适用于大规模二维矩阵的查找。掌握二分查找的原理,对于理解搜索算法和算法设计思想非常重要。

cannonjinx的博客 4280

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

[LeetCode] 74. Search a 2D Matrix

Problems: https://leetcode.com/problems/search-a-2d-matrix/ Solution1: class Solution { public boolean searchMatrix(int[][] matrix, int target) { // 矩阵为空,需要注意的是depth和width都需要判断 if(mat...

Renoler的博客 199

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

[LeetCode 74] Search a 2D Matrix

题目链接:search-a-2d-matrix /** * Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties: Integers in each row are sorted from le

瓦尔登湖 868

6.2.3 python二分查找算法及LeetCode题目(3)之二维数组 —— Search a 2D Matrix

接下来是两道二维数组查找的题目,看一下二维数组中二分查找的特点,或者说应用。 74.Search a 2D Matrix Write an efficient algorithm that searches for a value in anmxnmatrix. This matrix has the following properties: Integers in eac...

xutiantian1412的博客 585

【LeetCode】74. Search a 2D Matrix

题目: Write an efficient algorithm that searches for a value in anmxnmatrix. This matrix has the following properties: Integers in each row are sorted from left to right. The first integer of eac...

希望的专栏 172

LeetCode 74(Search a 2D Matrix)Java

原题:Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties 1. Integers in each row are sorted from left to right. 2. The first integer o

Jassy1994的博客 528

【LEETCODE】74-Search a 2D Matrix [Python]

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties: Integers in each row are sorted from left to right.The first integer of each ro

aliceyangxi1987的博客 1396
上一篇: leetcode 86. Partition List(分割链表)
下一篇: leetcode 402. Remove K Digits(删除K个数字)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值