算法:特殊二维数组查询key值是否存在
来源:互联网 发布:淘宝介入后对卖家影响 编辑:程序博客网 时间:2024/04/30 17:44
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
{1, 3, 6, 9},
{2, 5, 7, 12},
{6, 10, 14, 18},
{8, 11, 15, 20}};
行:从上到下递增,列:从左到右递增
选择右上角9位置为参照,如key=9返回找到;如果key<9,列左移一个单位,还是比6小,列继续左移,即cum–;如果key>9,行向下移动一个单位,同理row++;
Java实现
public class ArrayFindKey { public static void main(String[] args) { int[][] arr = { {1, 3, 6, 9}, {2, 5, 7, 12}, {6, 10, 14, 18}, {8, 11, 15, 20}}; int key = 6; System.out.println( findKey(arr, key)); } /** * 从右上角开始,如果key,等于该值返回,小于该值,cums左移一个单位,如果大于该值rows下移一个单位 * * @param arr * @param key */ private static boolean findKey(int[][] arr, int key) { int rows = 0; int cums = arr[0].length - 1; while (rows < arr.length && cums >= 0) { if (arr[rows][cums] == key) { showLog(rows, cums); return true; } else if (arr[rows][cums] < key) { rows++;; } else if (arr[rows][cums] > key) { cums--; } } return false; } private static void showLog(int rows, int cums) { System.out.println("找到原素 arr[" + rows + "][" + cums+"]"); }}
0 0
- 算法:特殊二维数组查询key值是否存在
- php 判断数组中key值是否存在
- 二维数组中查找是否存在某个值
- JavaScript判断数组是否存在key
- js查询数组中是否存在某个值
- PHP 判断二维数组中是否存在某个数组
- js判断数组或对象中的key是否存在
- php在数组中查找key或value是否存在
- 二维数组中查找某个数是否存在
- 二维数组中查找指定数是否存在?
- 在二维数组中查找指定的序列是否存在
- java 判断二维数组中是否存在某个数
- 二维数组中查找一个数是否存在
- 二维数组中查找是否存在一个数
- mysql FIND_IN_SET查询 字段,拼接数据是否存在某个值 in查询字段存在某个数组中
- 特殊二维数组查找
- swift dictionary 是否存在key
- 判断json是否存在KEY
- ubuntu 分卷
- Jsp到数据库中文乱码解决方法
- js如何判断客户端类型
- springmvc mybatis 基于全注解事务配置注意事项
- 并不能ac jsoi2009
- 算法:特殊二维数组查询key值是否存在
- VARCHAR2的简单说明
- PXC在线增加从库
- Spring的PropertyPlaceholderConfigurer应用
- 1099. Build A Binary Search Tree (30)
- js如何判断客户端类型
- Android support library支持包常用控件介绍(二)
- 高德地图获取开发所需要的key
- java开发环境设置