Java Homework Help - 使用数组递归

时间:2011-03-26 06:39:01

标签: java arrays recursion range

我有一组我需要做的递归问题。我已经完成了我们给出的4个中的3个,但是我很难绕着最后一个绕过头。 我不一定想要实际的答案,但也许只是指出我正确的方向,因为我甚至没有看到我的停止条件应该是什么。请注意,它必须是递归的,没有循环等。

提前感谢您提供的任何帮助!

  

写入递归方法arrayRange,它返回填充的整数数组中的最大整数减去最小整数。使用递归;不要使用循环。以下断言必须通过(注意将引用传递给新数组的快捷方式 - 它会保存您的写入一些代码(这会传递一个构建为参数的数组):

     

assertEquals(2,rf.arrayRange(new int [] {1,2,3}));

     

assertEquals(2,rf.arrayRange(new int [] {3,2,1}));

     

assertEquals(0,rf.arrayRange(new int [] {3}));

     

assertEquals(3,rf.arrayRange(new int [] {-3,-2,-5,-4}));

     

//前提条件:a.length> 0   public int arrayRange(int [] a)

1 个答案:

答案 0 :(得分:2)

停止条件是只剩下两个项目:最大值和最小值。然后返回差异。 (也处理1或0项的情况,考虑输入,如在测试用例中。)

现在..如何减少每次通过的列表? :)我会考虑一次检查前三个值(三个中,只有两个值应保留在递归步骤中)。

快乐的家庭工作。