剑指offer—(二维数组中的查找)PHP多解
2018-01-07 20:16
267 查看
原题:自己百度,下面直接解题方法、(待更新)
1:silu从左下角最后一行的第一个元素开始,遍历。如果小于target 则遍历该行的所有元素,找到结束。如果大于继续往上一行进行。等于直接结束。
3:
function Find($target, $array)
{
$m_y = count($array['0']);
$m_x = count($array);
$i = $m_x-1;
$j = 0;
while(1){
if($array[$i][$j]<$target){
$j++;
}
if($array[$i][$j]>$target){
$i--;
}
if($array[$i][$j] == $target){
return 1;
}
if($i == 0||$j == $m_y-1){
return 0;
}
}
}
1:silu从左下角最后一行的第一个元素开始,遍历。如果小于target 则遍历该行的所有元素,找到结束。如果大于继续往上一行进行。等于直接结束。
<?php function Find($target, $array) { $m_y = count($array['0']); $m_x = count($array); for($i=$m_x-1;$i>=0;$i--){ if($array[$i]['0'] < $target){ for($j=1;$j<$m_y;$j++){ if($array[$i][$j] == $target){ return 1; break; } } } if($array[$i]['0'] == $target){ return 1; break; } } }2:
function Find($target, $array) { $m_y = count($array['0']); $m_x = count($array); $i = 0; for($i =$m_x-1,$j=0;$i>=0&&$j<$m_y;){ if($array[$i][$j]<$target){ $j++; continue; } if($array[$i][$j]>$target){ $i--; continue; } if($array[$i][$j] == $target){ return 1; } } }
3:
function Find($target, $array)
{
$m_y = count($array['0']);
$m_x = count($array);
$i = $m_x-1;
$j = 0;
while(1){
if($array[$i][$j]<$target){
$j++;
}
if($array[$i][$j]>$target){
$i--;
}
if($array[$i][$j] == $target){
return 1;
}
if($i == 0||$j == $m_y-1){
return 0;
}
}
}
相关文章推荐
- 剑指Offer(1)______二维数组中的查找
- 剑指offer面试题三:二维数组中的查找
- 剑指offer 面试题4:二维数组中的查找
- 剑指Offer——二维数组查找
- 二维数组中的查找(剑指offer)
- 《剑指offer》——二维数组中的查找
- 《剑指offer》003-二维数组中的查找
- 剑指offer面试题[3]-二维数组的查找
- 《剑指offer》牛客网java题解-二维数组中的查找
- 二维数组的查找,刷题成功——剑指Offer
- 剑指OFFER(java)-二维数组中的查找
- 剑指offer 面试题3:二维数组中查找
- php冒泡排序、快速排序、快速查找、二维数组去重实例分享
- 面试题03_二维数组中查找_剑指offer系列
- 剑指offerJava实现 二维数组的查找
- 《剑指offer》面试题3:二维数组中的查找
- 剑指offer 3. 二维数组中的查找
- 剑指Offer——二维数组中的查找
- 《剑指offer》二维数组中的查找
- 剑指offer 面试题3 二维数组中的查找