【问题标题】:Java Homework Help - Recursion with arrayJava 作业帮助 - 使用数组递归
【发布时间】:2011-07-23 09:12:00
【问题描述】:

我有一组递归问题需要解决。我已经完成了我们获得的 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)

【问题讨论】:

  • 寻求家庭作业帮助,在这里可不是什么好事。
  • 寻求帮助很好。要求我们这样做不是。
  • 真的! OP 不想要一个直接的答案,而是想要帮助。

标签: java arrays recursion range


【解决方案1】:

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

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

在家工作愉快。

【讨论】:

  • 既然你这样说,那就完全有道理了。非常感谢!将着手研究该解决方案。我应该在得到解决方案后发布解决方案还是一个坏主意?
  • @user677786 如果您确实希望在此处发布解决方案,请考虑更新您的原始帖子(以下是您的解决方案的免责声明/警告:它可能会带走乐趣不过给别人!)。我至少要等到作业到期;-)
  • 好的,知道了:P 我会在截止日期后发布解决方案:P 再次感谢!
猜你喜欢
  • 2013-10-31
  • 2011-01-18
  • 2022-06-13
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
相关资源
最近更新 更多