【java】牛客BM18. 二维数组中的查找

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

牛客BM18. 二维数组中的查找在这里插入图片描述


解题思路:

本题利用这个二维表独特的性质可以较快解出。每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。由此可以看出,如果我们以这个二维表的右上角为起点开始与 target 作比较,如果 target 比目前右上角的数值大,行下移,即 i++ ;如果 target 比目前右上角的数值小,列左移,即 j-- ,我们只要控制好i ,j 的范围,此题即可解出。


实现代码:

public class Solution {
    public boolean Find(int target, int [][] array) {
        int m=array.length;
        int n=array[0].length;
        int i=0;int j=n-1;
        int flag=0;
        while(i<m&&j>=0){
            if(array[i][j]>target)
                j--;
            else if(array[i][j]<target)
                i++;
            else{
                flag=1;
                break;
            }
        }
        return flag==1?true:false;
    }
}

C编写的查表程序 用C语言编写的查表程序,用于采样或空间换时间参考。 立即下载

相关推荐

C语言二维数组中的查找的实例

主要介绍了C语言二维数组中的查找的实例的相关资料,需要的朋友可以参考下

C/C++编程刷题分享—二维数组中的查找

二维数组中的查找

咸鱼弟的博客 773

智能车实战——极速越野组GPS与惯导融合定位导航全解析

本文深入解析了智能车极速越野组中GPS与惯导模块的融合定位导航技术。通过对比GPS的全局定位与惯导的高频姿态感知,详细阐述了如何利用MM32SPN27主控,将两者数据融合以实现精准、实时的车辆控制。内容涵盖硬件选型、软件数据处理、PID控制及系统调试等实战环节,为智能车开发者提供了一套完整的解决方案。

pz8901234的博客 1204

二维数组的查找

# -*- coding:utf-8 -*- """用row和col两参数逐行或逐列遍历数组""" class Solution: # array 二维列表 def Find(self, target, array): # write code here rows = len(array)#首先确定数组的维度 cols = le...

Henry_Zhao的博客 257

【教程】安装 iterm2 打造漂亮且高性能的 mac 终端

最近电脑重新安装系统,开发环境和软件都需要重新安装和配置,其中终端工具是必不可少的,正好利用这个机会,介绍一下 macOS 终端神器 iTerm2 的安装和配置,并推荐几款好用的插件和工具。在IT领域中,工具的选择和使用对于开发者和运维人员来说至关重要。而在众多终端模拟器中,ITerm2无疑是一个出色的选择,希望本篇的文章能对你有些帮助,感兴趣的朋友可以登录官网查看官方文档。我是刘大大,持续分享AI相关领域的知识和工具,喜欢点点关注。

刘大大AI的博客 3399

解决UNITE数据库注释高unassigned率:手把手教你训练专属真菌分类器(含预训练模型分享)

本文针对使用UNITE数据库进行真菌ITS序列注释时出现的高未分配率问题,提供了详细的实战解决方案。通过对比vsearch直接注释与Naive Bayes分类器的原理差异,文章手把手指导读者在QIIME 2环境中训练专属分类器,包括数据准备、模型训练、参数优化及效果验证,并分享了预训练模型,旨在显著提升真菌群落分析的注释准确性和数据利用率。

weixin_29214199的博客 338

剑指 Offer 04 二维数组中的查找(C++)

充分利用题目中所给条件,利用行列特点去寻找目标值。

m0_62573214的博客 244

Arduino蜂鸣器播放《Astronomia》:从乐谱到代码的嵌入式音乐实现

在嵌入式系统开发中,通过编程控制硬件执行特定任务是核心基础。其原理在于利用微控制器生成精确的时序和频率信号,驱动执行器(如蜂鸣器、电机)完成预定动作。这项技术的价值在于实现了软件逻辑与物理世界的直接交互,是物联网设备、智能硬件开发的基石。常见的应用场景包括电子玩具的音效生成、报警器设计以及交互式艺术装置。本文以热门歌曲《Astronomia》的播放为例,具体展示了如何运用Arduino的`tone()`函数和数组数据结构,将抽象的乐谱转化为可执行的频率与延时控制代码,完整呈现了从**核心硬件解析**到**软

weixin_29796279的博客 348

1. 二维数组中的查找

一、题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 样例 输入数组: [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15] 如果输入查找数值为7,则返回true, 如果输入查找数值为5,则返回false。 二、思路 按照数组的...

噜噜噜 655

【后量子密码】SPHINCS+ 算法(二):签名与验签(附源码分析)

本节介绍SPHINCS+ 算法的密钥生成、签名与验签。nnn:安全参数;www:Winternitz参数,WOTS+签名分解的基底;hhh:超树的高度;ddd:超树中子树的层数;kkk:FORS 树的数量;ttt:FORS 树的叶子节点数。

听雨草堂 4680

使用verilog设计实现QR分解

QR(正交三角)分解法是求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。 使用verilog对QR实现方法进行设计并进行功能仿真: 如下: 顶层模块代码: module TOP( H1R, H1I, H2R, H2I, H3R, H3I, H4R, H4I, clk, rst_n, Y1R, Y1I, Y2R, Y2I, X1R, X1I, X2R, X2I ); parameter width = 16; // I

QQ_778132974的博客 2150

数组之二维数组查找

剑指 Offer 04. 1.二维数组中的查找 描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 [ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15] ] 给定 target = 7,返回 true。给定 target = 3,返回 false。 示例1 输入:7,[[1,2,8,9],[2,4,9,12],[

aceyaya的博客 522

Coze 打通飞书多维表格,实现数据增删改查操作实战详解

基于Coze 打通飞书多维表实现数据录入系统实战详解

congge 5780

算法打卡第十一天 牛客BM17 二分查找-I 和BM18 二维数组中的查找、BM19 寻找峰值

今天是秋招预备队算法篇打卡第十一天,已经状态不太好,先写两道题压压惊。

qq_45849148的博客 616

自抗扰控制(ADRC)理论与工程实践:8.2 模糊ADRC、神经网络ADRC等智能融合变体

智能融合ADRC变体概述 自抗扰控制(ADRC)与智能控制方法(如模糊逻辑、神经网络)的融合,旨在突破传统ADRC在非线性、时变系统中的应用局限。智能融合ADRC主要通过以下方式实现性能提升: 模糊ADRC 参数自整定:利用模糊推理在线调节ADRC带宽参数,实现自适应控制。 非线性反馈:用模糊控制器替代线性PD,灵活设计非线性控制策略。 优势:融入专家经验,无需精确模型;局限:依赖规则库设计,稳定性分析困难。 神经网络ADRC 增强ESO:用神经网络学习扰动动态,提高估计精度。

技术工作者 228

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

牛客算法 BM18 二维数组中的查找【中等 二分】

在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。进阶:空间复杂度 O(1) ,时间复杂度 O(n+m)给定 target = 3,返回 false。给定 target = 7,返回 true。0≤n,m≤500 , 矩阵中的值满足。数据范围:矩阵的长宽满足。不存在3,返回false。存在7,返回true。

weixin_37991016的博客 89

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

面试 TOP101 二分查找/排序专题题解汇总Java版(BM17 —— BM22)

本文总结了牛客网二分查找/排序相关题目(BM17-BM22)的解题思路和代码实现。包括二分查找、二维数组查找、寻找峰值等经典算法题,均采用高效的二分策略,时间复杂度多为O(logn)。其中BM20使用归并排序统计逆序对,BM22通过分段比较处理版本号。代码实现采用位运算优化、双指针等技术,逻辑清晰简洁。建议复习顺序从基础二分查找开始,逐步过渡到归并排序等较难题目。每道题都附有牛客网原题链接,便于直接练习。

YeeSum的博客,对技术充满好奇! 798

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

牛客算法题(二分查找篇)

二分查找法

weixin_45983532的博客 1053

牛客刷题:二分查找排序(JAVA版)

BM17 二分查找; BM18 二维数组中的查找; BM19 寻找峰值; BM20 数组中的逆序对; BM21 旋转数组的最小数字; BM22 比较版本号;

我认不到你的博客 1060

牛客题解 | 二分查找-I

牛客题库题解

wc529065的博客 778

牛客Top100热题宝典--第1节

牛客Top100热题宝典--第1节,链表,二分查找,折半查找

weixin_41171614的博客 1178

牛客top100 -自刷打卡day1 - 二分

day1 自刷打卡 - 二分

m0_50546235的博客 209

牛客101刷题笔记

牛客101

King Gigi的博客 764

算法练习(1):牛客在线编程02 二分法

【代码】算法练习(1):牛客在线编程02 二分法。

weixin_42774617的博客 215

面试 TOP101 专题题解汇总 (完结)

本文总结了牛客网面试TOP101中链表、数组和二叉树相关的高频题目。链表部分涵盖反转、合并、环检测等经典问题,常用快慢指针和虚拟头节点技巧;数组部分包括二分查找、逆序对统计等算法,注重时间复杂度优化;二叉树部分包含三种遍历方式及层序遍历等,采用递归和队列实现。每道题均标注了核心解法、时空复杂度和代码亮点,并附原题链接,适合面试快速复习和核心思路掌握。

YeeSum的博客,对技术充满好奇! 804
上一篇: 【java】牛客BM1.反转链表
下一篇: 【java】牛客BM19. 寻找峰值
青春无敌美少
博客等级 码龄6年 165粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值