二维数组中的查找(数组 查找)
来源:互联网 发布:手机版刷屏软件 编辑:程序博客网 时间:2024/06/05 14:47
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路一:
* 从左下角来看矩阵,向上数字递减,向右数字递增
* 从左下角开始查找,当要查找数字比左下角数字大时,右移 ;要查找数字比左下角数字小时,上移
public class Solution { public boolean Find(int target, int [][] array) { int m = array.length - 1; int n = array[0].length - 1; int i = m; int j = 0; if (m != -1 && n != -1) { while (i >= 0 && j <= n) { if (target < array[i][j]) i--; else if (target > array[i][j]) j++; else return true; } } return false; }}
*把每一行看成有序递增的数组,利用二分查找,通过遍历每一行得到答案。
*时间复杂度是nlogn
public class Solution { public boolean Find(int target, int [][] array) { for (int i = 0; i < array.length; i++) { int low = 0; int high = array[i].length - 1; while (low <= high) { int mid = (low + high) / 2; if (target < array[i][mid]) high = mid - 1; else if (target > array[i][mid]) low = mid + 1; else return true; } } return false; }}
阅读全文
0 0
- 二维数组中的查找(数组 查找)
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 二维数组中的查找
- 为什么Java byte 类型的取值范围是-128~127
- HAHA
- 5.6降级5.5问题
- RecyclerView灵活使用
- 云计算不能解决所有问题
- 二维数组中的查找(数组 查找)
- 记录生命中坑过我的那些人
- CDH5(Cloudera5.7.1)集群安装
- 看完一个在校大学生的 Java 学习历程,我觉得我还能学得更多
- 控件的边框设置
- RecyclerView添加头部
- 树状数组
- Django自动化运维管理平台
- 分享个绝地求生吃鸡图生成器,装逼利器!!