校招准备系列:每天一道算法题(10)-二维数组查找
来源:互联网 发布:怎样做seo 编辑:程序博客网 时间:2024/05/20 04:51
二维数组查找
此题来自剑指offer
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。所以我们可以从右上角数组元素开始比较,若要找的值大于此值,则目标值在下一行,i++即可;若小于这个值,则就在本行的左侧,j–即可,直到找到此值即可!
public class Solution { public boolean Find(int target, int [][] array) { int row = array.length; int col = array[0].length; int i,j; for(i = 0,j=col-1;i<=row-1&&j>=0;){ if(target == array[i][j]){ return true; } if(target > array[i][j]){ i++; continue; } if(target < array[i][j]){ j--; continue; } } return false; }}
另外附上暴力破解的代码:
public class Solution { public boolean Find(int [][] array,int target) { int i,j;boolean temp=false,flag=false; for( i=0;i<array.length;i++){ for(j=0;j<array[0].length;j++){ if(array[i][j]==target){ temp=true; flag=true; break; } } if(flag==true) break; } return temp; }}
阅读全文
0 0
- 校招准备系列:每天一道算法题(10)-二维数组查找
- 校招准备系列:每天一道算法题(1)
- 校招准备系列:每天一道算法题(2)
- 校招准备系列:每天一道算法题(3)
- 校招准备系列:每天一道算法题(4)
- 校招准备系列:每天一道算法题(5)-两数之和
- 校招准备系列:每天一道算法题(6)-连续最大和
- 校招准备系列:每天一道算法题(7)-末尾0的个数
- 校招准备系列:每天一道算法题(8)-进制转换
- 校招准备系列:每天一道算法题(9)-单例
- 校招准备系列:每天一道算法题(11)-替换空格
- 校招准备系列:每天一道算法题(12)-从尾到头打印链表
- 校招准备系列:每天一道算法题(13)-斐波那契数列
- 校招准备系列:每天一道算法题(14)-合并两个排序的链表
- 校招准备系列:每天一道算法题(15)-求1+2+3+...+n
- 每天一道算法题——二位数组中的查找
- 每天一个算法之二维数组查找整数
- 一道二维数组的算法题
- go语言学习之struct初认识
- k-modes聚类算法介绍
- shell编程自我总结
- springmvc的ModelAttribute注解
- 安卓笔记(1)文字超链接
- 校招准备系列:每天一道算法题(10)-二维数组查找
- C语言程序的基本结构--HelloWrold篇
- C++ STL之deque解析(1)---《C++ STL》
- 【bzoj1965】【AHOI2005】洗牌
- (M)Dynamic Programming,DFS:Shopping Offers
- Java并发实战:Callable+FutureTask实现多线程判分汇总
- 关于GAN网络的隐空间维度选择问题
- 《Redis的主从复制》原理详解
- c++知识点---文件的简单读写