当前位置: 首页 > 知识库问答 >
问题:

我需要递归地获得数组中最大的数

陈增
2023-03-14

我试图找到最大的双倍数组,但困难的部分是,你必须把数组分成两个切片,但在那之后,你需要计算2个子切片的最大值,并返回2个值中的最大值,这需要使用递归。

你能给我一个如何开始的建议吗。

public static  double getLargest(double [] a, int low, int high)
    {
       int c =  (low+high)/2; 
       double slice1[] = Arrays.copyOfRange(a, low,c + 1 ); 
       double slice2[] = Arrays.copyOfRange(a,c , high+1);
       if(low > high || high > a.length-1 ||low < 0 )
            throw new IllegalArgumentException();
       if(low == high )
            return a[low];
       else{ 

      }   
    }  
  }

共有1个答案

文英达
2023-03-14

您必须问自己在else部分要做什么。

您现在面对的是一个由两个或多个元素组成的数组。

你可以说:

  • 找到该数组前半部分的最大值(通过再次调用相同的方法,即递归,但使用“较短”的输入数组)
  • 查找该数组后半部分的最大值
  • 返回这两个结果中较大的一个
 类似资料:
  • 问题内容: 对于需要解决的问题之一,我使用for循环找到了数组的最大值,因此我尝试使用递归找到它,这就是我想出的: 因此它可以正常工作并获取最大值,但是我的问题是:对于基本情况,返回a [head]以及对于在开头处的值大于最后一个值的情况,可以吗? 问题答案: 您只需一个计数器即可轻松完成此操作,只需使用您这次想要比较的值的索引即可: 这样可以更好地显示正在发生的情况,并使用默认的“递归”布局,例

  • 本文向大家介绍python递归的最大层数?998相关面试题,主要包含被问及python递归的最大层数?998时的应答技巧和注意事项,需要的朋友参考一下  

  • 那么我如何使用这个pair类和我的方法来找到最小值和最大值。

  • 我的java代码中有一些错误。。我试图通过递归找到最小值。。我在上一个索引中的错误。。我注意到,如果上一个索引中的最小数字出现错误消息“java.lang.ArrayIndexOutOfBoundsException:8”。否则,如果最小值不在最后一个索引中,它将返回数组中找到的第一个最小值,并且从不检查其他值。 这是我的代码: 输出 数组中找到的第一个最小数的图像 最后一个索引中最小数字的图像

  • 我不明白为什么我会得到这个最大深度错误。iam试图使用bst递归方法在数组中查找数字索引,下面是我的代码 任何人都可以告诉我代码块中发生了什么 错误块: PS C:\Users\admin\Desktop\DSA

  • 问题内容: 我还没有找到满足我的功能特定需求的任何东西,是的,这是用于家庭作业。 所以我有: 前提条件:x.length> 0 我不能让函数返回任何东西,而唯一的参数是数组这一事实使我感到困惑。 我已经尝试过将循环与递归一起使用,但是我尝试过的一切似乎都以生成函数的无限实例结束。 我已经有了一个想法/建议与该函数一起使用另一个函数,但是,当前如何递归地使用原始函数超出了我的范围。 任何帮助表示赞赏