阿里面试算法题-二维递增数组的查找
来源:互联网 发布:java发http get请求 编辑:程序博客网 时间:2024/05/22 07:04
阿里面试算法题-二维递增数组的查找
注意:转载请说明,来自转自itboy-木小草,尊重原创,尊重技术。
题目:
一个n*m的二维数组,每一行从左到右依次递增,每一列从上到下依次递增。问:给你一个数字,如何能快速的输出他在数组中的位置。
/** * 一个n*m的二维数组,每一行从左到右依次递增,每一列从上到下依次递增。 * 问:给你一个数字,如何能快速的输出他在数组中的位置。 */ public static int[] getPos(int[][] a,int tag) { int len = a.length; int col = a[0].length; /* * 排除极端可能 */ if (a[0][0]>tag || a[len-1][col-1]<tag) { return new int[]{-1,-1}; } for (int i = 0,j = col - 1; i < len && j >= 0;) { if (a[i][j] == tag) { return new int[]{i,j}; }else if (a[i][j] < tag) { i++; }else { j--; } } return new int[]{-1,-1}; } public static void main(String[] args) { int[][] a = new int[][]{{1,2,3},{2,3,4},{5,8,9},{7,10,11}}; int[] result = getPos(a, 6); System.out.println(result[0] +","+ result[1]); result = getPos(a, 7); System.out.println(result[0] +","+ result[1]); }
时间复杂度:n+m
1 0
- 阿里面试算法题-二维递增数组的查找
- 二维递增数组的查找
- 行列递增序列的二维数组查找
- 行递增、列递增的二维数组中查找
- 递增二维数组中的查找
- 二维数组中的查找(行递增矩阵的查找)
- 阿里算法工程师校招面试之-找最长的连续递增子数组的长度
- 行列均递增的二维数组元素查找
- 行、列递增的二维数组数字查找
- 剑指offer-03:二维数组(行列递增)的查找
- 行列均递增的二维数组中查找元素
- 面试笔记--二维数组的查找
- 二维数组中查找一个数,该二维数组是 行和列递增的
- 二维数组查找算法
- 面试算法(三十)二维数组中的查找
- [面试] 算法(三) —— 有序二维数组的查找
- C++算法之 二维数组的查找
- [算法学习]二维数组的查找
- ERROR 1133 (42000): Can't find any matching row in the user table
- 开放定址法处理冲突
- 关于checkbox的多选和反选问题
- Linux Net I/O
- Java虚拟机解析篇之---垃圾回收器
- 阿里面试算法题-二维递增数组的查找
- POJ 2352 Stars(树状数组)
- 二叉排序树
- HTTP请求数据类型
- javaEE
- cocos2dx 3.x lua环境配置与代码调试
- loss function
- 超声波模块HC-SR04调试经验分享
- servlet3.0 async