(java)二维数组中的查找

二维数组中的查找(Java) 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。第一思路:在二维数组中选取一个数字,分3种情况来查找的过程。(1)选取的数字和target相等,则查找过程结束;(2)选取的数字小于target,则要查找的数字在当前选取项的右方或者下方;(3)选取的数字大于target,则要查... 阅读详情

分析:此题目我们可以从右上角或者左下角进行比较。我们以右上角为例,每次拿右上角的元素与目标元素进行比较,分为三种情况,(1)右上角元素大于目标值,则目标元素在当前二维数组的下方;(2)右上角元素小于目标值,则目标元素在当前二维数组的左方;(3)等于则说明找到目标元素;

代码实现如下:

package com.example.offer;
public class FindNumTest {

    public static void main(String[] args) {
        int[][] array={ {1,2,8,9},
                        {2,4,9,12},
                        {4,7,10,13},
                        {6,8,11,15}};
        int [][] arr={{},{}};
        int num=7;
        boolean flag=findNum( arr,num);
        if(flag){
            System.out.println("矩阵中含有指定数字!");
        }else{
            System.out.println("矩阵中不含有指定数字!");
        }
    }

    /**
     * 在二维数组中查找指定的数字,有两种查找方式,一是左下角开始查找,二是从右上角开始查找
     * 此方法我们从右上角开始查找
     * @param array
     * @param num
     * @return
     */
    private static boolean findNum(int[][] array, int num) {
        if(array!=null && array.length>0){ //避免空指针
            int row=0;
            int columns=array[0].length-1;
            //每次都取右上角的元素与目标元素进行比较
            while(row<array.length && columns>0){
                if(num>array[row][columns]){
                    row++;
                }else if(num<array[row][columns]){
                    columns--;
                }else{
                    System.out.println("行:"+(row+1)+",列:"+(columns+1));
                    return true;
                }
            }
            return false;
        }
        return false;
    }
}

注:我们不能从左上角与右下角元素开始比较,因为我们无法缩小二维数组。

Vectorless dynamic动态功耗分析——Voltus power 计算工具会根据设计信息和用户提供的activity和switching约束来生成虚拟的worst-case的power vector,难点在于哪些instances视为switching,在没有仿真的前提下如何确定开关的时间,使用timing文件(TWF) 阅读详情

相关推荐

Ubuntu登录界面黑屏?手把手教你排查和修复LightDM启动失败(附debug命令详解)

本文详细介绍了Ubuntu系统中LightDM(Light Display Manager)启动失败导致登录界面黑屏的排查与修复方法。通过系统状态检查、调试模式分析、常见故障解决方案及高级调试技巧,帮助用户快速定位并解决LightDM相关问题,恢复正常的图形登录环境。

weixin_34005090的博客 314

Java篇—二维数组的查找

题目描述:在一个二维数组中,每一行都是按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路:利用该二维数组的特性(行列都是递增的),用所查整数与右上角的元素进行比较,如果所查整数小于右上角数值(该元素为第一行的最大元素,最后一列的最小元素),则列col--,否则,行row++,查找结束的时候,如果还未...

戚同学的博客 511

动态表单设计

自定一表单数据结构。内容展示如有必要行转列。前端根据题目类型自定义组件后端跟俊题目类型用策略模式校验各种类型这样有统计功能的简单动态问卷就可以了展示时可能某些场景需要行转列。大概估摸使用的话有可能kmic_form_data_detail表的记录数比较大,后期再考虑数据或者表迁移或拆分。

zquwei的博客 3451

Java 实现二维数组中查找指定元素

题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 首先拿到这个题目我的想法就是俩个for循环遍历,但是这样子时间复杂度过高 经过思考我觉得可以考虑在数组中随机指定一个数字(i为该数字行下标,j为列下标)然后将该数字与目标进行比对,如果大于目标数字...

MJ_911的博客 2681

电竞护航系统成品搭建俱乐部点单小程序开发三角洲小程序搭建

电竞护航系统成品搭建俱乐部点单小程序开发三角洲小程序搭建

dapengglove的博客 1681

《物联网技术》课程笔记——第二章 物联网技术架构

文章目录第二章:物联网技术架构1 物联网技术体系(C3SD)2 系统体系结构的基本概念3 物联网体系结构——信息传递视角3.1物联网感知层3.1.1 感知层要解决的问题3.1.2 感知层的形态3.1.3 节点的感知能力与控制能力3.1.4 感知层实例3.2 物联网网络层3.2.1 网络相关概念3.2.2 IPV6与IPV4相比互联网协议的升级3.2.3 计算机网络的逻辑层次3.2.4 传输网的拓扑结构3.2.4.1 举例:智能小区的三表采集系统3.2.4.2 接入层3.2.4.2 汇聚层3.2.4.2 核心

南京大学软件工程硕士在读 2503

【算法学习】二维数组查找(Java)

一、题目描述 此题源于《剑指 offer》 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入: [ [1, 2, 8, 9], [4, 7, 10, 13] ],7 输出: true 二、思路分析 此题与前文二维数组检索 search-a-2d-matrix类似,与之不同的是,每一行的第一个数字都比上一行最后一个数字大,这个条件保证了数组有序是单向的(

小鼠标的博客 1207

发那科机器人karel程序

备份和查看发那科机器人中的 Karel 程序的过程主要包括从示教器中备份程序,并通过 RoboGuide 等仿真软件查看和运行程序。步骤相对简单,但需要确保你的设备和软件已经设置好,可以通过 FTP 或直接从示教器的外部存储设备进行操作。如果你在操作过程中遇到问题,建议查阅相关的用户手册或联系发那科的技术支持,确保设备设置正确。如果你有更具体的问题或需要进一步帮助,欢迎继续提问!希望如上措施及解决方案能够帮到有需要的你。

**My Coding Family** 1600

【java】二维数组中的查找

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

qq_42250887的博客 1264

MATLAB基础应用精讲-【深度强化学习】SAC(Soft Actor-Critic)算法(附MATLAB和python代码实现)

Actor 网络:用于选择动作。Critic 1 和 Critic 2 网络:用于估计 Q 值。Target Critic 1 和 Target Critic 2:与 Critic 网络架构相同,用于生成更稳定的目标 Q 值。,即在保证探索的情况下选择高价值动作。软更新目标 Q 网络参数,使得目标网络参数缓慢向当前网络靠近,避免振荡。

qq_36130719的博客 454

使用MATLAB中的Simulink工具来构建一个微电网系统的仿真平台

微电网是指由分布式电源(如太阳能、风能等)、储能装置、负载以及控制和保护装置组成的局部电力系统。它可以独立于主电网运行,也可以与主电网并联运行。本示例将以一个简单的微电网为例,展示如何利用Simulink进行微电网接入与孤岛运行策略的设计与仿真。分布式电源:模拟太阳能光伏板或风力发电机等分布式电源。储能装置:用于存储多余能量或补充不足能量。负载:模拟实际用电需求。双向变流器:实现直流与交流之间的转换,并支持并网和孤岛模式切换。控制器:负责管理微电网的运行模式,包括并网控制和孤岛控制。

xiaoheshang_123的博客 345

Java——二维数组中的查找

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

m0_60867520的博客 499

数据科学技术与应用【中国大学MOOC】:数据可视化_第五次作业_答案

数据科学技术与应用 数据可视化 第五次作业 答案 题目来源:中国大学MOOC-东华大学-宋晖等-数据科学技术与应用 1 ( 30分 ) 2012—2017年我国人均可支配收入为[1.47, 1.62, 1.78, 1.94, 2.38, 2.60](单位:万元)。按照要求绘制以下图形。 1)模仿例4-1和例4-3,绘制人均可支配收入折线图。用小矩形标记数据点,黑色虚线,用注解标注最高点,图标题为“Income chart”,设置坐标轴标题,最后将图形保存为JPG文件。 2)模仿例4-2,使用多个子图分别绘制

Herbert胡不归 6140

Java解决 二维数组中的查找问题

Java解决 二维数组中的查找问题二维数组中的查找题目描述解题思路_**注意**_参考代码(Java) 二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如在如下数组中查找7,则返回true,查找5,则返回false。 1 ...

qq_41216255的博客 234

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

二维数组的查找 java_java基础编程——二维数组中的查找

题目代码import java.util.Scanner;/*** 题目描述* 在一个二维数组中(每个一维数组的长度相同),* 每一行都按照从左到右递增的顺序排序,* 每一列都按照从上到下递增的顺序排序。* 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。* Created by YuKai Fan on 2018/8/13.*/public class Solutio...

weixin_34766547的博客 372

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 一 暴力求解法 直接依次遍历数组即可,找到整数就返回true。 public class Solution { public boolean Find(int target, int [][] ar...

zhaoyi666的博客 287

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java算法二维数组中的查找

题目描述 给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。 public static void main(String[] args) { int[][] nums = new int[][]{{1, 4, 7, 11, 15}, {2, 5, 8, ...

weixin_43213641的博客 235

java二维数组行列互换_「剑指offer题解」二维数组中的查找

关注我的微信公众号:后端技术漫谈不定期推送关于后端开发、爬虫、算法题、数据结构方面的原创技术文章,以及生活中的逸闻趣事。原创博客主要内容Java知识点复习全手册Leetcode算法题解析剑指offer算法题解析SpringCloud菜鸟入门实战系列SpringBoot菜鸟入门实战系列Python爬虫相关技术文章后端开发相关技术文章前言众所周知,对于面试而言,《剑指offer》是一本“好书”。如果你...

weixin_33117401的博客 203

二维数组中的查找 Java解法

题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 public class Solution { public boolean Find(int target, int [][] array) { int r=array.length...

菜鸡工坊 160

剑指 Offer 04. 二维数组中的查找 LeetCode Java

剑指 Offer 04. 二维数组中的查找 难度中等682收藏分享切换为英文接收动态反馈 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14,

matthew_leung的博客 1308

二维数组的查找 java_二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。array: 待查找的二维数组target:查找的数字。查找到返回true,查找不到返回false。思路:   1 2 8 92 4 9 124 7 10 136 8 11 15例如上面的二维数组,因为数组是部分有序的,所以很快...

weixin_35674742的博客 380

剑指Offer-二维数组中的查找Java

1、二维数组中的查找 题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 1、首先判断数组是否为空 2、如果数组形式比较特殊,如:递增递减或者连续递增递减等等,则可以通过比较最值的方式提高效率 3、遍历数组逐个比较是否相等 二维数组判空三...

llluluyi的博客 285

二维数组中的查找 java

二维数组中的查找 java 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码1: public class Solution { public boolean Find(int target, int [][] array) {...

柳絮 275

Java-二维数组中的查找

Java-二维数组中的查找 题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 Link : 二维数组中的查找 Code : public class Solution { public boolean Find(int target...

Rainbow 413

【JAVA】实现二维数组中的查找

在一个二维数组中(每个一维数组的长度相同) 每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数, 判断数组中是否含有该整数。 提示: 如: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 查找时从左下角开始查找, 题意是:从左往右递增, 从下往上递增(也就是从下往上递减)所以如大于左下角值, ...

JockLiu的博客 616

[Java]二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。《剑指offer面试题3》 public class TwoDimensionalArray { public static void main(String[] args) { int column = 5

2463
上一篇: Oracle 如何在where子句中加入case when
下一篇: (java)从尾到头打印链表——三种方法解
程序员楂楂
博客等级 码龄9年 17粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值