6-二维数组中的查找
时间:2020-04-11
本文章向大家介绍6-二维数组中的查找,主要包括6-二维数组中的查找使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:该二维数组中的某一个数,小于它的数一定在它的左边,大于它的数一定在它的下面。所以可以从右上角开始查找。
- 代码如下
3 /* 4 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, 5 每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 6 */ 7 public class Demo5 { 8 9 public static void main(String[] args) { 10 11 //定义一个二维数组 12 int[][] arr = new int[][]{{1, 4, 7, 11, 15}, 13 {2, 5, 8, 12, 19}, 14 {3, 6, 9, 16, 22}, 15 {10, 13, 14, 17, 24}, 16 {18, 21, 23, 26, 30}}; 17 printArray(arr); 18 19 boolean find = Find(20, arr); 20 System.out.println(find); 21 } 22 23 /** 24 * 判断数组中是否有指定的数 25 * @param target 目标数 26 * @param array 传入此方法的二维数组 27 * @return 28 */ 29 public static boolean Find(int target, int [][] array) { 30 if(array == null || array.length == 0 || array[0].length == 0){ 31 return false; 32 } 33 34 int row = array.length; 35 int col = array[0].length; 36 //找到二维数组右上角的坐标值 37 int r = 0; 38 int c = col-1; 39 40 while(r < row-1 && c >=0){ 41 if(target == array[r][c]){ 42 return true; 43 }else if(target > array[r][c]){ 44 r++; 45 }else{ 46 c--; 47 } 48 } 49 return false; 50 } 51 52 /** 53 * 打印二维数组 54 * @param arr 55 */ 56 public static void printArray(int[][] arr) { 57 for (int i = 0; i < arr.length; i++) { 58 for (int j = 0; j < arr[i].length; j++) { 59 System.out.print(arr[i][j]+"\t"); 60 } 61 System.out.println(); 62 } 63 } 64 65
原文地址:https://www.cnblogs.com/sun-/p/12681038.html
- WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
- zookeeper命令行(zkCli.sh&zkServer.sh)使用及四字命令
- [WCF的Binding模型]之三:信道监听器(Channel Listener)
- zookeeper监控告警
- 扩展ToolBarManager、ListView和Grid控件以实现气球式的ToolTip
- Linux同步机制 - 基本概念(死锁,活锁,饿死,优先级反转,护航现象)
- Linux同步机制 - 多线程开发总结
- 谷歌发布升级版语音合成系统,直接从字符合成语音
- 无锁编程 - 大纲
- 无锁编程(一) - Double-checked Locking
- 无锁编程(二) - 原子操作
- 我所理解的Remoting(3):创建CAO Service Factory使接口和实现相互分离
- 无锁编程(三) - 忙等待
- Enterprise Library深入解析与灵活应用(9):个人觉得比较严重的关于CachingCallHandler的Bug
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Angular单元测试的spyOn使用一例
- SQL-JOIN全解析
- Node.js上传单文件和多文件的一些示例博客和源代码
- ES6中的箭头函数=>
- 22 个让 React 开发更高效更有趣的工具
- JavaScript中==和===的区别
- 解决:打包SpringBoot项目成jar包后,其他的项目无法引入jar包中的对象
- 【分享】MPSoC R5引导4个A53和两个R5的应用程序的例子
- 【分享】MPSoC交叉编译例子
- JSON.stringify() 的 5 个秘密特性
- Kyverno - Kubernetes 原生策略管理引擎
- 你不知道的 Vue 单元测试(6000字实战单元测试)
- Linux系统异常排查实践与总结
- 它会不会成为OCR领域霸主?经过一个月的分析,我得出了这些结论
- 【一天一大 lee】二叉搜索树中的插入操作 (难度:中等) - Day20200930