在PHP中使用递归在数组中查找最大值

戴尔·沃(Dales Vu)

我知道如何使用循环来解决这个简单的问题,但是我想在递归中发挥更多的作用。我试图在PHP中使用递归在数组中找到最大值。我的基本想法是将数组的第一个值与新数组的最大值进行比较(通过删除给定数组的第一个值来完成):

function find_max($arr)
{
    if ($arr = []) 
    {
        return 0;         // base case
    } else
    {
        if ($arr[0] > find_max(rest_of($arr)))
        {
            return $arr[0];
        } else
        {
            return find_max(rest_of($arr));
        }           
    }
}

function rest_of($arr)
{
    unset($arr[0]);                  // remove the first value of the array
    $arr = array_values($arr);       // re-index the array
    return $arr;
}

但是当我跑步时,似乎有无限循环。“未定义的偏移量:0”有人可以帮助我吗?

拉吉普·保罗(Rajdeep Paul)

问题是因为您的基本情况在这里,

if($arr = []){ ...

=是赋值运算符,不是比较运算符。您需要的是一个比较运算符==应该是这样

if($arr == []){

此外,您可以通过这种方式更改基本条件,

if(count($arr) == 1){
    return $arr[0]; // base case
}

所以你的find_max()功能应该是这样的:

function find_max($arr){
    if(count($arr) == 1){
        return $arr[0]; // base case
    }
    if ($arr[0] > find_max(rest_of($arr))){
        return $arr[0];
    } else{
        return find_max(rest_of($arr));
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用递归在 Python 中实现“在数组中查找最大值”?

来自分类Dev

使用NumPy在数组中查找最大值的索引

来自分类Dev

使用JavaScript函数在数组中查找最大值

来自分类Dev

使用递归查找数组中的最大值

来自分类Dev

使用递归查找数组中的最大值

来自分类Dev

使用递归查找数组中的最大值

来自分类Dev

使用递归查找数组中的最大值相对

来自分类Dev

Excel公式在数组中查找最大值

来自分类Dev

在数组中查找列的最大值

来自分类Dev

在数组中寻找最大值;在 Java 中使用四个线程

来自分类Dev

使用JavaScript查找数组中的最小和最大值

来自分类Dev

在数组中查找最小值和最大值的有效方法

来自分类Dev

在数组C ++中查找最小值/最大值的索引

来自分类Dev

在数组Javascript中查找最小值和最大值

来自分类Dev

Java –在数组中查找最小值和最大值

来自分类Dev

在数组中查找最小值和最大值

来自分类Dev

递归查找数组中的最小值和最大值

来自分类Dev

在单个递归函数中查找数组的最大值和最小值

来自分类Dev

递归查找数组中的最小值和最大值

来自分类Dev

Python递归-在嵌套数组中查找最大值和最小值之和

来自分类Dev

如何在数组对象中查找参数的最大值?

来自分类Dev

如何在数组中查找最大值,包括数字

来自分类Dev

MATLAB:在数组数据的每个间隔中查找最大值?

来自分类Dev

在Scala中递归查找列表中的最大值

来自分类Dev

在C ++中递归查找向量中的最大值

来自分类Dev

在Scala中递归查找列表中的最大值

来自分类Dev

在python中递归查找具有最大值的元素

来自分类Dev

php:仅将最大值保留在数组中?

来自分类Dev

PHP中数组的最大值

Related 相关文章

热门标签

归档