剑指OFFER-二维数组中的查找
2017-03-19 15:54
239 查看
题目
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题解
最笨的办法当然是按照顺序挨个搜索,如果数组无序的话,这也是唯一的办法,不过既然数组有序,就可以简单很多,一是可以通过每列的二分查找的方式搜索。不过更简单的是因为数组排列从左到右递增,从上到下递增。那每一列最左边的数就可以作为一个点,如果要搜索的数字比它小,就在上一列,如果比它大,就往右边找。所以,我们从左下角开始查找。代码
<?php function 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; }
同理,也可以从右上角开始。
相关文章推荐
- 剑指offer刷题之java实现的二维数组中的查找
- 剑指offer之二维数组中的查找(Python)
- 剑指offer-面试题3:二维数组中的查找
- 剑指offer学习笔记【二维数组的查找】
- 剑指offer-面试题3:二维数组中的查找
- 剑指offer 03:二维数组中的查找
- 剑指offer|面试题3:二维数组中的查找(Java代码)
- 剑指Offer-3-二维数组中的查找
- 剑指offer题目3-二维数组中的查找(JAVA实现)
- 牛客网-剑指Offer-二维数组的查找
- 剑指offer 二维数组中的查找
- 【剑指offer】二维数组中的查找
- 二维数组中的查找(剑指offer面试题3)
- 剑指Offer:二维数组中的查找
- 剑指Offer——二维数组中的查找
- 剑指offer:二维数组中的查找(数组)
- 剑指Offer面试题3二维数组查找
- 【剑指Offer】二维数组中的查找$2.3.1
- 剑指Offer_面试题03_二维数组中的查找
- 剑指offer-题3:二维数组中的查找