牛客 剑指offer二维数组中的查找

【牛客刷题-剑指Offer】BM18 二维数组中的查找:一题四解,从暴力到最优 方法时间复杂度空间复杂度优点缺点适用场景暴力遍历On×mOn×mO1O(1)O1简单直接,易实现效率低,不适合大数据量小规模数据二分查找Omlog⁡nOmlognO1O(1)O1利用行有序,效率较高未利用列有序特性行数较少时Z字形查找OnmO(n + m)OnmO1O(1)O1最优解,利用行列有序无各种规模数据递归分治平均优于OnmO(nm)OnmOlog⁡nmOlognm。 阅读详情

题目


时间限制:1秒 空间限制:32768K 热度指数:1421035
本题知识点: 查找 数组
算法知识视频讲解
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路


这道题固然可以直接使用暴力法解决,但是这里就不说暴力法了

对于这道题,我们可以从左下或者右上来遍历,对于这两个位置,要么是行最大列最小,要么是列最大行最小,所以每次我们将该位置的数与目标值做比较时,就可以往列或行的其中一个方向移动,以左下为例
当数值>target时,往上移动
当数值<target时,往右移动
当数值=target时,返回true
右上同理

代码


暴力法

function Find(target, array)
{
    for(let i=0;i<array.length;i++){
        for(let j=0;j<array[0].length;j++){
            if(array[i][j]===target){
                return true;
            }
        }
    }
    return false;
}
module.exports = {
    Find : Find
};

左下/右上遍历

function Find(target, array)
{
    // write code here
    let row=array.length-1;
    let col=0;
    while(row>=0&&col<array[0].length){
        if(array[row][col]===target){
            return true;
        }else if(array[row][col]>target){
            row--;
        }else{
            col++;
        }
    }
    return false;
}
module.exports = {
    Find : Find
};
OpenFOAM-v2006重叠网格挖洞问题实战:如何手动修复overset代码中的边缘识别缺陷 本文深入探讨了OpenFOAM-v2006中重叠网格挖洞问题的实战解决方案,重点修复overset代码中的边缘识别缺陷。通过逆向工程解析挖洞决策机制,设计最小侵入式的函数override方案,并建立多级验证体系,有效解决了网格挖洞区域覆盖不全的问题,提升了计算流体动力学模拟的准确性和可靠性。 阅读详情

相关推荐

吉比特-笔试

1. 题一:打雷后下雨的概率是80%,而打闪电后下雨的概率是70%,那么即打雷又打闪电后下雨的概率是多少?   答:打雷后下雨和打闪电后下雨都是独立事件,P=1-又打雷又闪电但没下雨的概率= 1 - 0.2 *0.3 = 94%        题二:打雷后下雨的概率是80%,但是没打闪电后下雨的概率是20%,那么打雷了但没打闪电后下雨的概率是多少?答:P=0.8 *0.2 / ( 0.8 *0

naturism的专栏 2496

牛客网剑指offer“数组类型”第1题——二维数组中的查找

一、题目 二、思路分析 思想:想办法缩小查询范围,即想办法去剔除掉某行或者某列。 例子: 1、当从数组中随便选取一个数字时,将这个数字与要查找的数字比较后无论大了或小了,都没有规律可循。 2、当每次都从左上或者右下选取数字时,也没办法缩小查询范围,没有规律可循。 3、当每次都从右上或者左下选取数字时,发现每次可以剔除掉一行或者一列,以每次从右上角开始为例,具体如下: (1...

walkingLL的博客——成长之路 582

从CAD到Web:高效转换STEP/IGES模型为GLB格式的实践指南

本文详细介绍了如何将工业设计中的STEP/IGES模型高效转换为Web友好的GLB格式。通过PythonOCC和gltf-pipeline等工具链,实现从CAD到Web的无缝转换,大幅提升模型加载速度和展示效果。文章包含实战案例、优化技巧和常见问题解决方案,帮助开发者快速掌握3D模型转换技术。

weixin_29072299的博客 509

牛客在线编程(剑指offer)---二维数组中的查找

题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路: 这个题目我之前在看书的时候看到过。要是没看,按我自己的思路肯定是遍历查找,复杂度O(n*n)。但是作者就给了一个很好的思路,就是从矩阵右上角开始查找,如果这个数是大于目标数,则要查找的目标数肯定是在这一列的左侧

a1103000308的博客 1321

避坑指南:Zabbix poller进程100%占用的5种常见原因及解决方案

本文深入剖析了Zabbix poller进程占用率高达100%的五大常见原因,包括监控项与进程数不匹配、不可达主机资源浪费、数据库性能瓶颈、监控项配置不合理以及版本缺陷。文章提供了从系统化诊断到针对性解决方案的完整指南,并重点介绍了如何通过优化zabbix_server.conf中的StartPollers等关键参数进行有效调优,帮助运维人员从根本上解决这一经典性能问题。

7z8x2c4v6b9的博客 251

基于Mind+、MOTT实现人工智能

@基于Mind+、MOTT实现人工智能 人工智能实验 一、实验目的及要求 【一】实现人脸识别 【二】实现云数据库应用 【三】实现测温数据mqtt上传至物联网云平台 二、实验原理与内容 基于二哈实现多人人脸学习和识别 基于TinywebDB实现云数据库应用 基于EasyIoT实现mqtt数据上传。 三、实验软硬件环境 硬件:掌控板 软件:Mind+ 四、实验过程(实验步骤、记录、数据、分析) 1.基于二哈实现多人人脸学习和识别 ①在Mind+扩展上的传感器选项选择HUSKYLENS AI 摄像头 ②配置哈士

weixin_44606930的博客 2379

牛客《剑指Offer》 二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:从左下角开始搜索,如果当前数大于target ,向下移动,如果当前数小于target ,向后移动。class Solution { public: bool Find(int target, vector&lt;v...

u013383813的博客 391

Docker深度详解:从原理到实践的全方位指南

本文深入解析了Docker容器化技术的核心原理与实战应用。主要内容包括:1) Docker核心架构与优势,对比容器与虚拟机的关键差异;2) 企业级部署方案,涵盖离线安装与多镜像源配置;3) 高级镜像构建技术,如参数化构建、缓存优化及安全扫描;4) 容器生命周期管理,包括健康检查、资源限制及数据持久化方案。文章提供了丰富的代码示例和生产级配置建议,如使用Trivy进行安全扫描、精确控制容器资源等技术细节,帮助开发者全面掌握现代容器化技术。

weixin_42593797的博客 1282

【牛客】剑指Offer——1. 二维数组中的查找

最近在刷牛客网上的《剑指 offer》,练一练自己的算法。有一些比较难的代码可能参考了牛客网的优质解答。 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 Python2 解答 # -*- coding:utf-8 -*- class Sol...

Kanny 612

Python爬虫教程:抓取短视频平台数据(以抖音和快手为例)

为什么抓取短视频平台数据?内容分析:通过抓取短视频平台上的视频内容、标题、标签等数据,可以进行内容分类、趋势分析、话题分析等。情感分析:抓取视频的评论数据,并进行情感分析,帮助企业或组织了解公众的情绪反馈。用户行为分析市场监测:通过抓取特定关键词或标签下的视频数据,分析市场趋势,进行竞争对手分析。短视频平台数据类型:视频信息:包括视频标题、描述、标签、作者等。用户信息:包括用户的昵称、粉丝数、关注数等。互动数据评论数据:视频下的用户评论内容及用户信息。

2201_76125261的博客 3663

C# & SQL Server 实时数据同步:7步轻松搞定,代码详解

实时数据同步是指在一个数据库中的数据发生变化时,能够立即或近乎立即地将这些变化同步到另一个数据库中。这种同步可以是单向的(从源数据库同步到目标数据库),也可以是双向的(两个数据库互相同步)。通过本文的详细讲解和代码示例,相信你已经学会了如何使用C#和SQL Server实现数据库的实时数据同步。实时数据同步不仅可以提升系统的响应速度,还能确保数据的一致性和准确性。希望这篇教程对你有所帮助,期待你在C#编程中取得更大的成就!🌟✨如果你有任何问题或建议,欢迎在评论区留言交流!

java专栏 515

【牛客】剑指Offer1——二维数组中的查找

方法一:暴力法 从左至右,从上至下依次查找,如果最终找到了目标数字则返回TRUE,否则返回FALSE。 方法二:线性查找之右上角标志数法 由于给定的二维数组具备每行从左到右递增以及每列从上到下递增的特点,当访问到一个元素时,可以排除数组中的部分元素。 从二维数组的右上角开始查找。 如果当前元素等于目标值,则返回TRUE; 如果当前元素大于目标值,则移到左边一列; 如...

sinat_21791203的专栏 225

Apollo 9.0 参考线生成器 -- ReferenceLineProvider

在基于参考线的规划算法中,参考线是Planning一切工作的基础和前提,所以搞清楚参考线怎么来的就变得很重要。为此,首先需要了解Planning 与 Routing的交互,通过交互得到路径片段,这些路径片段就告诉我们该怎么走,再在此基础上生成参考线,最后使用不同的平滑算法对参考线进行平滑,得到一条光滑的参考线。

WaiNgai 1666

牛客剑指offer 4;二维数组查找 python版

时间限制:1秒空间限制:32768K热度指数:1071676 本题知识点:查找 算法知识视频讲解 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路:例子如下: 1 2 8 9 2 4 ...

zhangzc12409的博客 205

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【牛客 - 剑指offer】JZ4 二维数组中的查找 Java实现

在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

guliguliguliguli的博客 292

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【JAVA】【LeetCoad力扣、牛客】【剑指 Offer 】 二维数组中的查找

暴力求解,二分法求解

zhq_blog的博客 484

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

剑指offer、牛客-二维数组的查找

描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:根据数组的特性来缩小范围public class Solution { public boolean Find(int target, int [][] array) { int rows = 0,...

Dove_Knowledge的博客 381

【Java】牛客_剑指offer(JZ1) 二维数组的查找

【Java】牛客_剑指offer(JZ1) 二维数组的查找 题目来源:https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&&tqId=11154&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增

weixin_43747073的博客 190

牛客-剑指offer 01 | 二维数组中的查找

题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题解 只需要对二维列表遍历即可: # -*- coding:utf-8 -*- class Solution: # array 二维列表 def Find(self, target...

测试开发小白变怪兽 154

剑指offer(牛客)---1.二维数组中的查找

题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 第一种方式,直接暴力进行对比的方式: class Solution{ public static boolean find(int target,int[][] array) { b...

moxiaolin的博客 308

中head函数_牛客剑指offer:1,二维数组中的查找

自己的方法,占存巨高,还有地方可以改进,但是先存着题目要求/* * 在一个二维数组中(每个一维数组的长度相同), * 每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 */代码,以及自定的测试案例package Day1; import javax.sound.midi.Mi...

weixin_35740875的博客 105

【牛客剑指offer刷题】:Python:1.二维数组中的查找

时间限制:1秒 空间限制:32768K 热度指数:1042720 本题知识点: 查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码: # -*- coding:utf-8 -*- class Solution: # array ...

Jack_Kuo的博客 562

剑指Offer(牛客版)--面试题4:二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码如下: class Solution { public: bool Find(int target, vector<vector<int> > array) { ...

汤姆鱼 161

牛客——剑指offer系列题解:二维数组中的查找(python,双指针法)

从今天开始希望能记录刷题的过程。牛客和力扣中都是相关题目,这里以牛客的题目描述为主。该系列默认采用python语言。 问题描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题解: ...

weixin_42042056的博客 288

【牛客】剑指offer-----面试题3:二维数组中的查找

题目描述:一个二维数组,每一行从左到右递增,每一列从上到下递增.输入一个二维数组和一个整数,判断数组中是否含有整数。思路:首先选取右上角数字,如果当前数字&gt;target,则向左继续比较,如果当前数字&lt;target,则向下继续比较public class Solution { int row = 0; int col = 0; public boolean Fi...

huiyudaoyi的专栏 260

剑指offer答案python_剑指 Offer - python 题解

断断续续刷完了牛客网上的剑指 Offer 题目,也随着整理了所有题目的解答方案,python 写的。目录如下:第1篇| 数组 | 二维数组中的查找第2篇| 字符串 | 替换空格| 链表 | 从尾到头打印链表第3篇| 树 | 重建二叉树| 栈和队列 | 用两个栈实现队列| 查找和排序 | 旋转数组的最小数字第4篇| 递归和循环 | 斐波那契数列| 递归和循环 | 跳台阶| 递归和循环...

weixin_40008339的博客 238
上一篇: React-router学习笔记 react-router基本使用
下一篇: 使用react-router进行多级路由匹配
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值