剑指OFFER-二维数组中的查找
来源:互联网 发布:jdk源码有哪些值得买 编辑:程序博客网 时间:2024/05/16 18:47
题目
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题解
最笨的办法当然是按照顺序挨个搜索,如果数组无序的话,这也是唯一的办法,不过既然数组有序,就可以简单很多,一是可以通过每列的二分查找的方式搜索。不过更简单的是因为数组排列从左到右递增,从上到下递增。那每一列最左边的数就可以作为一个点,如果要搜索的数字比它小,就在上一列,如果比它大,就往右边找。所以,我们从左下角开始查找。
代码
<?phpfunction Find($target, $array){ $y_len = count($array); $x_len = count($array[0]); for($i = $y_len-1, $j = 0; $i>=0&&$j<$x_len;){ if($target == $array[$i][$j]){ return true; }elseif($target < $array[$i][$j]){ $i--; continue; }elseif($target > $array[$i][$j]){ $j++; continue; } } return false;}
同理,也可以从右上角开始。
0 0
- 剑指offer-->二维数组中的查找
- 剑指offer之二维数组中的查找
- 剑指offer:3-二维数组中的查找
- [剑指Offer]二维数组中的查找
- 【剑指offer】二维数组中的查找
- [剑指Offer]二维数组中的查找
- 剑指Offer:二维数组中的查找
- 【剑指offer】二维数组中的查找
- 剑指offer 1384 二维数组中的查找
- 剑指Offer之二维数组中的查找
- 剑指offer 03:二维数组中的查找
- 剑指offer(2) - 二维数组中的查找
- 剑指offer-二维数组中的查找
- 剑指offer-3 二维数组中的查找
- 剑指Offer之 - 二维数组中的查找
- 剑指offer 3 -二维数组中的查找
- 剑指offer之二维数组中的查找
- [剑指Offer]5.二维数组中的查找
- js、jquery遍历数组和对象
- 欢迎使用CSDN-markdown编辑器
- 论菜鸡的一生 之心态爆炸,在下实在缺少勇气
- 小白转载~关于javaEE的MVC(三大层)简单描述(摘抄)
- centos6.5配置网卡:动态和静态配置
- 剑指OFFER-二维数组中的查找
- Castle Windsor 学习-----Installer的几种安装方式
- 数据库 隔离
- 实验吧登陆一下好吗??WP
- ART以及Dalvik知识的普及
- POJ3114 Countries in War 【强连通分量】
- 树形排序与堆排序
- IPython(jupyter)
- 我就是我