剑指offer 1 二维数组中的查找
2016-03-22 13:59
316 查看
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入描述:
array: 待查找的二维数组 target:查找的数字
思路:
由于从左到右有一定的顺序,从上到下也有顺序,如果单纯暴力则毫无意义。
可以先考虑第一行最右边的情况,如果target小于这个数字,那么target显然也小于这个数组中得这个数字所对应的这一列的所有数字。
然后就是考虑第一列最下边的数字,如果target小于这个数字,那么target显然也小于这个数组的这个数字对应的这一行的所有数字。
所以最后就缩小了范围,直接在限定的范围里面遍历。
public class Solution { public boolean Find(int [][] array,int target) { //if(array==null||(array!=null&&array.length==0))return false; int r_mark=array[0].length-1; int l_mark=array.length-1; if(r_mark<=0||(l_mark<=0))return false; for(int i=array[0].length-1;i>=0;i--){ if(array[0][i]<=target){ r_mark=i; break; } } for(int i=array.length-1;i>=0;i--){ if(array[i][0]<=target){ l_mark=i; break; } } for(int i=0;i<=l_mark;i++){ for(int j=0;j<=r_mark;j++){ if(array[i][j]==target){ return true; } } } return false; } }
相关文章推荐
- JS 跨域问题浅析及解决方法优缺点对比(转)
- 前端(js、jquery等)
- react-lifecycle-parent-child.jsx(自github)
- 使用CSS实现一个flash动画
- caffe中卷积计算方法
- 发送邮件网页样式乱了。
- 安装node.js 及安装gulp步骤
- AngularJS中的表单应用一二
- jquery中使用ajax发送post请求返回数据在error中
- 后台管理系统模板ACE
- CSS教程:div垂直居中的N种方法[转]
- 前端神器Sublime Text 3的下载与安装
- jQuery实现滚动时动态加载页面内容
- JSP学习笔记七之Cookie
- JavaScript面向对象精要(一)
- jQuery复制table header到表格的最下面
- js 判断图片是否加载完成
- html 虚线
- 理解JavaScript中的作用域和上下文
- 移动web页面前端开发总结