Java二维数组查找功能代码实现
作者:yaominghui 发布时间:2023-01-04 19:47:17
标签:Java,二维,数组,查找
题目描述:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目分析:
根据二维数组的特点可知,二维数组相当于一个矩阵;
根据题意可知该数组是有序的,因此该矩阵元素相当于是从小到大排列的;
如果从左下角开始查找较方便,因为左下角的值向上是递减的,向右是递增的;
当从左下角开始比较时,如果target传入的数大于它则列数加一进行比较 ,如果小于它则行数减一进行比较。
代码:
public class Solution {
public boolean Find(int target, int [][] array) {
int rows = array.length;
//定义行数
int lies = array[0].length;
//定义列数
int i = 0;
//i用于计数
while((rows>0)&&(i<lies))
//while中不满足条件时即停止循环
{
if(target>array[rows-1][i])
//当目标大于左下角的值时,让列数自增
{
i++;
}
else if(target<array[rows-1][i])
//当目标小于左下角的值时,让行数自减
{
rows--;
}else
{
//当前两种都不是时,说明找到目标
return true;
}
}
//遍历完还没找到,说明目标在数组中不存在
return false;
}
}
来源:https://www.cnblogs.com/kangbazi666/p/13068124.html
0
投稿
猜你喜欢
- 我们知道,进入百度图片后,输入一个关键字后,首先看到的是很多缩略图,当我们点击某张缩略图时,我们就可以进入到大图显示页面,在大图显示页面,中
- 对于初学java的同学来说,第一件事不是写hello world,而是搭建好java开发环境,下载jdk,安装,配置环境变量。这些操作在xp
- 这篇文章主要介绍了SpringBoot如何读取war包jar包和Resource资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具
- 下面是我自己收集整理的2017年Java岗位的面试题,可以用它来好好准备面试。一、Java基础1. String类为什么是final的。2.
- 一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中I
- 线程中断机制提供了一种方法,用于将线程从阻塞等待中唤醒,尝试打断目标线程的现有处理流程,使之响应新的命令。Java 留给开发者这一自由,我们
- 问题分析疑惑满满小枫听到这个面试题的时候,心想这是什么水面试官,怎么问这么简单的题目,心想一个for循环加上equal判断再删除不就完事了吗
- 1.概述在本快速教程中,我们将学习如何设置Spring Security LDAP。在我们开始之前,了解一下LDAP是什么? - 它代表轻量
- 一、电子邮件详解假设自己的电子邮件是me@163.com,对方的邮件是you@163.com我们编写好文件填写好对方文件,点击发送,这些电子
- 自然排序TreeSet集合在存储数据时有一定的顺序,它会将一些数据进行比较,比较调用的是comparaTo()方法,该方法是在Compara
- 案例sql脚本DROP DATABASE IF EXISTS `javacode2018`;CREATE DATABASE `javacod
- 简单工厂简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。定义了一个创建对象的类,由
- 1、实现原理不同过滤器和 * 底层实现方式大不相同,过滤器 是基于函数回调的, * 则是基于Java的反射机制( * )实现的。1、拦
- 文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并。很多高大上的分布式文件系统(比如:google
- 自从SEOTcs系统11月份24日更新了一下SEO得分算法以来,一直困扰我的一个问题出现了,java的数据job任务,在执行过程中会经常报以
- 本文实例为大家分享了java导出csv格式文件的具体代码,供大家参考,具体内容如下导出csv格式文件的本质是导出以逗号为分隔的文本数据imp
- 本文基于SpringBoot 2.5.0-M2讲解Spring中Lifecycle和SmartLifecycle的作用和区别,以及如何控制S
- 1.为什么要使用synchronized在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字syn
- Java 使用IO流实现大文件的分割与合并文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一
- springboot + docker + jenkins自动化部署项目,jenkins、mysql、redis都是docker运行的,并且