面试题3. 二维数组中的查找
来源:互联网 发布:李医生祛痘洁面乳 知乎 编辑:程序博客网 时间:2024/06/03 16:30
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
首先选取数组右上角的元素:
1. 如果这个数 = 要查找的数,直接返回true,程序完毕
2. 如果这个数 < 要查找的数,说明这个数左边的数都小于要查找的数,则这一行都不要了
3. 如果这个数 > 要查找的数,说明这个数下边的数都大于要查找的数,则这一列都不要了
以此类推,最后找到要查找的数。
对于有n个元素的矩阵,时间复杂度要小于O(n)
Java代码如下:
public class Solution { public boolean Find(int target, int [][] array) { int i = 0, j = array[0].length - 1; // 右上角 int rows = array.length; int cols = array[0].length; boolean found = false; if(rows > 0 && cols > 0) { while(i < rows && j >= 0) { if(array[i][j] == target) { found = true; break; }else if(array[i][j] > target) { j--; }else { i++; } } } return found; }}
阅读全文
0 0
- 面试题3. 二维数组中的查找
- 面试题3:二维数组中的查找
- 面试题2:二维数组中的查找
- 面试题三 二维数组中的查找
- 面试题3 二维数组中的查找
- 面试题3:二维数组中的查找
- 面试题3-二维数组中的查找
- 面试题3 二维数组中的查找
- 面试题3:二维数组中的查找
- 面试题3二维数组中的查找
- 面试题1:二维数组中的查找
- 面试题3:二维数组中的查找
- 面试题3 ----二维数组中的查找
- 面试题3:二维数组中的查找
- 面试题2:二维数组中的查找
- 面试题3:二维数组中的查找
- 面试题3:二维数组中的查找
- 面试题3:二维数组中的查找
- Android View绘制机制基础(一)
- 高级UI之SVG画台湾地图
- Problem D: 栈小游戏
- Android 使用hide()和show()方法切换Fragment时的问题
- Struts2_Spring_Hibernate整合及测试_2(标准)
- 面试题3. 二维数组中的查找
- Android中图片Bitmap的缩放
- Spark 作业调度
- CSS-transition
- hadoop 2.7.3 源码分析超简单源码修改测试
- 输入输出
- 关于char直接取数字
- Linux系统调用列表(三)网络管理 socket控制
- jQuery/jQuery选择器