隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找

7c11c73f42990a365808afd41e3ee10f.png

算法名称:二维数组中的查找

题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

解题思路:

首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围中剔除一行或者一列,这样每一步都可以缩小查找的范围,直到找到要查找的数字,或者查找范围为空。

例如,我们要在上述的二维数组中查找数字7的步骤如下图所示:

6c517895a439d8332324f47330b46e2a.png

实例代码:

  • Java
class Solution {public boolean findNumberIn2DArray(int[][] matrix, int target) {if (matrix.length > 0 && matrix[0].length > 0) {int row = 0;int colomn = matrix[0].length - 1;while (row < matrix.length && colomn >= 0) {if (target < matrix[row][colomn]) {colomn--;} else if (target > matrix[row][colomn]) {row++;} else if (target == matrix[row][colomn]) {return true;}}}return false;}}
  • Golang版
func findNumberIn2DArray(matrix [][]int, target int) bool {if len(matrix) > 0 && len(matrix[0]) > 0 {row := 0colomn := len(matrix[0]) - 1for row < len(matrix) && colomn >= 0 {if target < matrix[row][colomn] {colomn--} else if target > matrix[row][colomn] {row++} else if target == matrix[row][colomn] {return true}}}return false}

本题考点:

  • 考察面试者对二维数组的理解及编程能力。二维数组在内存中占据连续的空间。在内存中从上到下存储各行元素,在同一行中按照从左到右的顺序存储。因此我们可以根据行号和列号计算出相对于数组首地址的偏移量,从而找到对应的元素。

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

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

相关文章

在线电脑配置PHP源码,域名授权系统PHP源码 V2.7.0 支持盗版追踪

最新漂亮简洁大气的域名授权系统PHP源码&#xff0c;域名授权系统PHP版&#xff0c;功能强大带有后台&#xff0c;经过版本升级&#xff0c;全新美观大气的UI洁面&#xff01;支持盗版追踪&#xff0c;与卡密系统对接购买卡密对域名进行授权&#xff0c;支持授权代码、到期时间…

php 504网关,504 gateway timeout什么意思

504 gateway time-out(504网关超时错误)是HTTP状态代码&#xff0c;这意味着一个服务器在尝试加载网页或填写浏览器的另一个请求时未从其访问的另一台服务器收到及时响应。换句话说&#xff0c;504错误通常表明不同的计算机&#xff0c;即您正在获取504消息的网站无法控制但依赖…

python 二维数组长度_剑指offer二维数组中的查找【Java+Python】

点击上方"蓝字"&#xff0c;关注了解更多二维数组中的查找1. 题目描述在一个二维数组中(每个一维数组的长度相同)&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输入这样的一个二维数组…

失物招领小程序_通知 | 保卫部拟设置失物招领处

保卫部拟设置失物招领处为规范对遗失物品的接收、登记、发放等工作&#xff0c;切实维护师生利益&#xff0c;保卫部拟设置失物招领处&#xff0c;现将有关失物招领的流程明确如下&#xff1a;1、失物招领地点&#xff1a;保卫部二楼中厅。2、遗失物的接收。师生将拾得的遗失物…

php获取表所有数据类型,php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?...

就是多个1级分类 下面有不确定个二级分类 二级分类下面有不确定个三级分类 我想获取到相关的数据组合写入数据库 但是这个格式不知道怎么排才能获取到对的数据有空的亲们给看看 帮下 谢谢有没有办法获取整列的值 然后根据长度去区分2列 然后再区分三列现在获取到的数据格式是按…

redis 清空db下_PHP操作redis实现的分页列表

正文内容封装类文件如下&#xff1a;/* * redis 分页数据类库 */class redisPage{protected $_redis;protected $_redis_ip 127.0.0.1; //ipprotected $_redis_port 6379; //端口protected $_redis_db 0; //数据库号protected $_hash_prefix my_data; //前缀名称public fun…

php5.1.4,apache 2.2.2 + PHP5.1.4 不能运行的解_php

apache 2.2.2 php5.1.4 不能运行的解决办法.问题,使用传统的模块化方法安装PHP5.1.* apache 2.2.2 后不能启动,提示:"Cannot load C:/php/php5apache2.dll into server: The specified module could not be found."原因:PHP压缩包里的php5apache2.dll只适用于apach…

java 保留字符串,如何在Java中保留字符串而不使用反转功能

有以下几种在Java中反转字符串的方法&#xff1a;使用for循环使用While循环使用静态方法使用For循环使用for循环在Java中反转字符串的示例在下面的示例中, 我们使用了for循环来反转字符串。 for循环执行直到条件i> 0变为false为止。import java.util.Scanner;class ReverseS…

php用cdn打不开,开启 CDN 后 wordpress 后台打不开的解决办法

现在很多站长把网站放到国外&#xff0c;使用 CDN 加速功能提高国内的访问速度&#xff0c;前面提到过开启腾讯云 CDN 后 wordpress 后台显示&#xff1a;连接被重置的解决办法&#xff0c;而今天遇到的是另外一种情况&#xff0c;有时候会遇到开启 CDN 后 wordpress 后台打不开…

android 支付宝月账单 统计图_记账其实很简单,用微信、支付宝就够了!

用微信、支付宝记账&#xff0c;从起告别糊涂账养成记账的好习惯&#xff0c;能让你对生活中的各种收支做到心中有数&#xff0c;从此告别糊涂账。长期坚持&#xff0c;能帮助我们理性消费、科学理财。但或许是因为记账的过程太枯燥&#xff0c;或许是因为没找到合适的记账方法…

mysql抖动可能的原因,12 | 为什么我的MySQL会“抖”一下?

你的 SQL 语句为什么变“慢”了平时执行很快的更新操作&#xff0c;其实就是在写内存和日志&#xff0c;而 MySQL 偶尔“抖”一下的那个瞬间&#xff0c;可能就是在刷脏页(flush)。当内存数据页跟磁盘数据页内容不一致的时候&#xff0c;我们称这个内存页为“脏页”。内存数据写…

怎样快速画出一个正方体_图形与几何---正方体

一&#xff0e;概念描述现代数学&#xff1a;正方体亦称立方体。它是一种正多面体。即棱长相等的长方体&#xff0c;因此亦称正六面体&#xff0c;如下图。小学数学&#xff1a;2007年北京版教材第10册的第3页指出&#xff1a;长、宽、高都相等的长方体叫作正方体(也叫作立方体…

复旦微电子fpga数据手册_专注FPGA图像加速领域 深维科技跨入发展快车道

日前&#xff0c;在2019赛灵思开发者大会(美洲站)上&#xff0c;深维科技正式面向全球发布ThunderImage三款重磅图像加速产品&#xff1a;全球最快的JPEG2JPEG缩略图方案、超高性能的JPEG2WebP转码方案及世界级超高密度算力的JPEG2JPEG缩略图方案。新产品一经发布立即“技惊”四…

python 调c++生成的dll 中识别char *_基于tensorflow 实现端到端的OCR:二代身份证号识别...

最近在研究OCR识别相关的东西&#xff0c;最终目标是能识别身份证上的所有中文汉字数字&#xff0c;不过本文先设定一个小目标&#xff0c;先识别定长为18的身份证号&#xff0c;当然本文的思路也是可以复用来识别定长的验证码识别的。 本文实现思路主要来源于Xlvector的博客&a…

php友价商城手游,2019年T5友价商城网站程序-伪静态规则

# Version 3.1.0.73RewriteEngine on#RewriteBase /RewriteRule vip(.*) /shop/view.php?str$1RewriteRule ^(.*)/search(.*).html /$1/index.php?str$2RewriteRule ^(.*)/goods([0-9]*).html /$1/goods.php?id$2RewriteRule ^(.*)/(.*)list(.*).html /$1/$2list.php?str$3…

php程序员学什么语言好就业_2019年初中毕业生学什么专业好?学什么专业好就业?...

前言&#xff1a;据了解&#xff0c;目前我国职业人才缺口较大&#xff0c;市场供需不平衡。许多学生往往还没毕业&#xff0c;就已经与企业签订了就业协议。因此&#xff0c;有许多家长愿意把小孩子送到专业学校进行就读。毕竟可以学的一门好专业&#xff0c;对学生将来的路是…

中print中加f_Python3中的格式化输出

Python3字符串格式化输出有两种形式实现&#xff1a;a&#xff1a;字符串格式化表达式&#xff1a; ...%... % (values)b&#xff1a;字符串格式化方法调用&#xff1a;...{}....format(values) 或者 f...{xx}...1:字符串格式化的类型码(typecode)(表1)2: 字符串格式化表达式格…

Json-ServerMockJs简单快速生成测试数据

Json-Server&MockJs简单快速生成测试数据 1、Json-Server 和 MockJs的安装 npm install -g json-server //全局安装2、创建目录和初始话 例如&#xff1a;创建D:\ProjectOne文件夹 3、打开终端或者powershell进入ProjectOne文件夹 4、初始化项目 npm init5、安装Mock…

oracle nvl和coalesce,NVL与Coalesce之间的Oracle差异

慕码人8056858COALESCE是更现代的功能&#xff0c;是ANSI-92标准的一部分。NVL在Oracle具体的&#xff0c;它在推出80的前存在任何标准。在两个值的情况下&#xff0c;它们是同义词。但是&#xff0c;它们的实现方式不同。NVL总是计算两个参数&#xff0c;同时COALESCE通常在找…

安卓签名生成工具_ios app如何进行内测?ios app和安卓app的内测有何区别?

目前手机主流的操作系统分为Android和iOS两大阵营&#xff0c;分别是由谷歌和苹果进行开发维护。这两大平台的应用都相互独立&#xff0c;无论是运行机制还是底层原理&#xff0c;都不一样&#xff0c;所以即使是同一款App也是需要针对在两大平台上分别进行内测和运营、发布。那…