牛客网在线编程专题《剑指offer》(1)二维数组中的查找

《牛客网 剑指Offer前20题》 《剑指Offer》三天刷完剑指offer前言知识面试题1:二维数组中的查找 三天刷完剑指offer 前言知识 优秀的程序员首先要有良好的基本功,基本功在面试编程环境体现在:编程语言、数据结构和算法。   编程语言:以C语言为例,例如把const加在指针不同位置有什么区别。主要考察对编程语言掌握程度。   数据结构:要熟练掌握链表、树、栈、队列和哈希表等数据结构,对链表的插入和删除节点了如指掌,... 阅读详情

"微信公众号"


题目连接:

https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目:


解题思路:

(1)循环遍历整个二维数组,进行比较。时间复杂度为O(n^2)。

	//时间复杂度是O(n^2)
	public static boolean Find(int target,int[][] array) {
		int row = array.length;
		int col = array[row].length;
		for(int i=0; i<row; i++) {
			for(int j=0; j<col; j++) {
				if(array[i][j]==target) {
					return true;
				}
			}
		}
		return false;
	}

(2)把每一行看成有序递增的数组,利用二分查找,通过遍历每一行得到答案,时间复杂度是O(NlogN)。

	//时间复杂度为O(nlogn)
	public static boolean Find(int target,int[][] array) {
		int row = array.length;
		for(int i=0; i<row; i++) {
			int high = array[i].length-1;
			int low =0; 
			while(low<=high) {
				int mid = (low+high)/2;
				if(array[i][mid]==target)
					return true;
				else if(array[i][mid]<target) {
					low = mid +1;
				}else {
					high = mid -1;
				}
			}
		}
		return false;
	}

(3)由于二维数组由上到下,由左到右递增的规律,那么选取右上角或者左下角的元素a[row][col]与target进行比较,当target小于元素a[row][col]时,那么target必定在元素a所在行的左边,即col--;当target大于元素a[row][col]时,那么target必定在元素a所在列的下边,即row++;

  public boolean Find(int target, int [][] array) {
        int row = array.length;
		int col = array[0].length;
		int i = row-1;
		int j = 0;
		while(i>=0&&i<row&&j<col) {
			if(array[i][j]==target) {
				return true;
			}else if(array[i][j]>target){
					i--;
			}else {
					j++;
			}
		}
		return false;
    }

DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——1~20 DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程——01~20 目录 剑指offer——66道在线编程——01~20 1、二维数组中的查找某个target—二分法查找 2、字符串内空格进行替换—列表转为字符串技巧 3、链表翻转 4、重建二叉树 5、用两个栈实现队列 6、旋转数组的最小数字 7、斐波那契数列 8、斐波拉契数序列应用:跳台阶→... 阅读详情

相关推荐

AI辅助专利撰写实战:用Codex 30分钟生成发明专利初稿

这次我们来看一个用 Codex 从零开始撰写发明专利的实战项目。对于技术研发人员、产品经理或初创团队来说,专利申请是保护创新成果、构建技术壁垒的关键一步。然而,撰写一份高质量的专利申请书,尤其是权利要求书和说明书,往往需要专业的法律和技术语言,耗时耗力。这个项目演示了如何利用 AI 工具 Codex,在短时间内生成一份结构完整、逻辑清晰、具备授权潜力的专利申请文件初稿。 整个过程的核心不是让 AI 完全替代专利代理人,而是将其作为强大的“技术翻译”和“内容生成”助手。它能将你的技术构思、流程图、核心算法或产

weixin_32181267的博客 421

【剑指offer】二维数组的查找

题目链接:https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左

wilson_m的博客 224

视觉SLAM十四讲--第13讲 实践:设计SLAM系统(最详细的代码调试运行步骤)

最详细的代码调试运行避坑说明,也包含了我自己对代码的理解,如有理解错误的地方,欢迎指正交流。

记录和分享 1万+

部署 使用 acme.sh 给 Nginx 安装 Let’ s Encrypt 提供的免费 SSL 证书

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33676492的博客 568

DeepSeek-OCR又更新:一起看下OCR1和OCR2

DeepSeek-AI 最近又又开源了,这次是DeepSeek-OCR2,结合之前发布的DeepSeek-OCR ,可以发现DeepSeek走出了一条不同于主流 OCR 方案的技术路线。第一代模型探索了**“视觉作为文本压缩介质”的可行性,打破了传统的序列长度限制;第二代模型则通过“Visual Causal Flow(视觉因果流)”**架构,将因果推理引入视觉编码器,解决了复杂排版下的阅读顺序难题。本文将从架构设计、逻辑结构、训练范式及工程实现四个维度,深度剖析这两代模型的异同与创新。

kakaZhui的博客 624

FPGA开发者必看:手把手教你用Xilinx ERNIC IP实现RoCE v2网络加速(附PG332文档解读)

本文详细解析了Xilinx ERNIC IP在FPGA平台上实现RoCE v2网络加速的全流程,包括架构设计、Vivado工程配置、驱动开发与性能调优。通过PG332技术文档的实践指导,帮助开发者快速构建低延迟、高性能的网络加速方案,适用于数据中心和边缘计算场景。

weixin_29168813的博客 672

坚持用C++刷牛客题(剑指offer专题)

牛客网的《剑指offer》专栏里面每道题都带有练习模式和考试模式,可还原考试模式进行模拟,也可通过练习模式进行练习。质量非常不错,有易有难,因此在这篇博客里我将分享几道有趣的算法题,都使用C++语言完成。`我个人非常喜欢先学习知识后刷题巩固的学习方式,但是这样做最重要的便是坚持。还有既然要刷算法题,那就C++一条路走完,坚持用C++解决算法题!牛客网的题目非常经典且友好,建议大家学习知识后去牛客网对应的领域去刷题练习,获得成就感与充实感,加油!!!......

叶落秋白的博客 1662

星载SAR的各项指标解读(史上最全)

一、系统指标 系统指标主要指雷达系统的通用的指标,以及和卫星整星相关的指标,主要有一下几项: 工作频段: 雷达体制: 极化方式: 设计s

9277

[Java刷算法]牛客—剑指offer第一天

直面未来,挑战面试,和小编一起挑战30天刷完《牛客—剑指offer》。等你来战!!!!

muzi_longren的博客 9018

针对小缺陷目标:在YOLOv11中引入小目标检测层

摘要: 针对YOLOv11在工业检测中漏检微小目标(如焊点气泡)的问题,研究发现深层特征下采样导致小目标信息丢失。通过在YOLOv11中增加P2检测层(4倍下采样)并融合浅层高分辨率特征,可显著提升小目标召回率。关键优化包括:调整模型结构、谨慎设计数据增强策略(减少MixUp、增加小目标粘贴)、重新分配损失权重(提升P2层权重)、优化推理速度(动态分辨率、通道裁剪)。同时强调数据质量的重要性,建议根据具体场景特性(目标尺寸、分布)定制方案,而非盲目调整模型。

as1225120794的博客 366

IDEA出现闪退或打不开的解决方法

本身项目比较大,为了打开这个软件,可调节IDEA中安装的bin目录下有个。打开IDEA的时候过一会便闪退,可以再IDEA的右下角看到如下提示。(如果没有该提示,软件右下角也会有个红色感叹号,点开查看原因即可)闪退的多数原因大致是out of memory,内存溢出。查看任务管理器中的进程:(发现内存随时有溢出的情况)但也需要注意,该参数并不是越大越好,适中即可。只有个别原因是需要管理员权限就可执行!可以尽量减少软件的启动。

码农研究僧的博客 5945

牛客网-剑指offer编程题解答。

举个例子,数组{1,2,3,2,3} 当i=0时,index=numbers[i]=1, 小于length,index=1 numbers[index]=2 小于length,说明第一次访问 此时标记访问记录,numbers[index]=2+length; 即numbers[1]=2+length; 当i=1时,index=numbers[i]=2+length,大于ength,需要取得真实

dagon123的博客 842

手把手教你学Simulink--基于飞轮储能系统的场景实例:飞轮储能与锂电池混合储能系统的协同控制

本文详细介绍了基于Simulink的飞轮储能与锂电池混合储能系统协同控制建模方法。通过高通/低通滤波器实现功率分配,使飞轮处理高频波动(±100kW),锂电池承担削峰填谷(50kW)。仿真结果表明,该系统效率达88%,锂电池循环次数减少90%,投资成本比纯电池方案节省200万美元。文章包含完整的建模步骤、控制策略设计和多场景仿真分析,为构建高效、长寿、经济的智能储能系统提供了实用解决方案。

MHD0815的博客 343

牛客刷题——剑指offer

牛客刷题 ——保姆级剑指offer教学

weixin_59796310的博客 2014

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

牛客网&剑指Offer&二维数组的查找

牛客网&剑指Offer&二维数组的查找 代码实现 #include<iostream> #include<vector> using std::cout; using std::cin; using std::endl; using std::vector; class Solution { public: bool Find(int target,...

weixin_42060900的博客 241

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

剑指offer第二版 python 牛客网刷题全记录

每个题目单独整理的版本存储在这里, 点击题目名字可以跳转到牛客网的成功提交记录,点击python可以看到存储库中的对应求解代码。 # -*- coding: utf-8 -*- from binarytree import tree # Definition for singly-linked list. class ListNode(object): def __init__(s...

Jasmine_dream 3269

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

剑指Offer #01 二维数组中的查找(Java描述)

题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目解析 方法一: 暴力法,遍历二维数组,时间复杂度为 O(n2)O(n^2)O(n2) public class Solut...

Veggie的博客 1万+

JAVA实现二维数组中的查找(《剑指offer》)

最近在刷《剑指offer》里的编程题,但是网上关于《剑指offer》的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码(当然也有部分是借鉴了网上别人的解答的,出处未注明敬请之处请指出,侵删),希望能对大家的学习有所帮助。 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的

遥同学的博客 2641

【剑指offer题解】二维数组中的查找

前言 众所周知,对于面试而言,《剑指offer》是一本“好书”。 如果你和我一样是个算法菜鸡,那么最推荐的是先把剑指offer的题目搞明白,其次再去刷LeetCode等习题,这样对于面试突击非常有用,因为面试官最常考的算法题都在这本书里。 如果你发现看这本书很吃力,可以先直接参考些网上的代码,照着抄一遍,理解下算法题是应该解题,多抄几道题目,你就对算法题的做法有感觉了,这个高考做固定套路数学题是...

蛮三刀酱 598

【剑指offer】1-二维数组中的查找

本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。 在线测试平台:牛客网 1-Description 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 2-Solution 2-1 暴力解法 下面是直接用暴力的解法,从左上角开始一行...

心之所向,敝履以往 291

剑指offer——1.二维数组中的查找

本系列代码都在牛客的剑指offer在线编程上通过,版本为v8 6.0.0 题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码思路:因为矩阵的特殊性,所以先从第一列最后一行开始比较,小于则向上查找,大于则向后查找function Find(target, array) {

yuyurenjie的博客 1579

《剑指Offer》1. 二维数组中的查找

题目:二维数组中的查找 知识点:查找 题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路: 这里有三种解法,分别是我自己写出的比较烂的一种,书中的一种,还有牛客网提供的一种。 解法一:我利用二位数组从上到下,从左到右都是递增...

Coder Yang 436

剑指offer--二维数组中的查找、字符串替换空格

开宗明义:本系列基于牛客网剑指offer,刷题小白,一天两道我快乐!旨在理解和交流,重在记录,望各位大牛指点! 牛客网-剑指offer 文章目录1、二维数组中的查找 1、二维数组中的查找 题目来源:LeetCode 70. Climbing StairsLeetCode \ 70. \ Climbing \ StairsLeetCode 70.&nbsp...

qq_33948796的博客 251

牛客网剑指offer java 全部题解

经过数月的努力,终于更完了牛客网的66道剑指offer,以下的顺序和大家在牛客网的顺序是一样的(排序也花了不少时间),希望对大家找工作/提高算法能力能起到些许帮助。 每天一道剑指offer-二维数组中的查找 https://mp.weixin.qq.com/s?__biz=MzI5MzYzMDAwNw==&amp;mid=2247484262&amp;idx=2&amp;sn=83fb17...

WantFlyDaCheng的博客 1568

Java版牛客网剑指offer编程题第1题--二维数组中的查找

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力,算法和数据结构,是基础中的基础,更是笔试的重中之重。 不积硅步,无以至千里;文章目录题目描述解题方法1解题方法2代码测试总结参考文献更多 题目描述...

learnjiawa的博客 567

剑指Offer 二维数组中的查找

**&amp;lt;本文为作者原创,转载请注明出处&amp;gt;** 剑指Offer 二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目分析 题目中明确描述数组从左至右从上至下都是递增的顺序,所以一眼就能看出来这是个...

weixin_43207320的博客 228
上一篇: 深度学习优化方法-AdaGrad
下一篇: TensorFlow中Saver保存读取
Microstrong0305
Microstrong0305 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄12年 6405粉丝 312原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值