【问题标题】:How many different values in an 2d array recursively ,java递归二维数组中有多少个不同的值,java
【发布时间】:2016-12-23 07:52:13
【问题描述】:

我已经尝试了很长时间,但我无法解决。所以我在这里与您联系。 我有一个预制的方法,它可以接收一个二维数组并返回整数。 数组中的每个数字代表一种颜色。数字范围在 0 到 9 之间。 我的工作是递归地返回数组中有多少种不同的“颜色”。 允许使用我自己的其他方法来帮助,但主要思想应该是递归的。 *如果我想使用预制方法作为帮助方法,我必须使用重载。

如果有什么地方被误解了,请告诉我,我会改正(英语不是我的母语)。 提前致谢!

【问题讨论】:

  • 所以你的意思是如果 0, 1, ... 9 都出现在数组的某个地方,那么答案是 10?只有当数组中缺少一个或多个数字时,答案才会小于 10?
  • 我只是想知道为什么它是一个二维数组?二次元的内容是什么?
  • 抱歉,如果您花了这么多时间思考……那么请向我们展示您目前创建的代码。现在,你仍然可能只是把你的家庭作业放在这里;想找人为你做你的工作!
  • 我建议:将BitSet 传递给您的递归方法,在第一次调用时为空。然后让您的方法将遇到的每种颜色添加到您的BitSet。之后BitSet 中的元素数量(真实位数)等于数组中不同值的数量。

标签: java arrays recursion


【解决方案1】:

您可以简单地创建一个递归函数,它将数组的 2 个索引作为参数并将结果保存在某处。 类似的东西

public void rec(int i, int j) 
{
 // some base condition 
 if (i <= width && j <= height) 
 {
   // do some calculations for example:
   result = result + diff(a[i][j]);              
   // something like this that will simulate the iteration like in for loop
   if (i == width && j < height) rec(0, j + 1); else rec(i + 1, j);     
 }
}

【讨论】:

  • 既然你决定做他的功课,那diff()方法是干什么的?
  • 这实际上是一个小提示……你看,在回答低质量问题时,你想给出超高质量的答案。这样人们就可以看到支持您的内容的任何意义。截至目前...不。
  • 我只是想帮助了解如何在二维数组中使用它。对我来说,在我的旅程开始时,递归并不是那么直接的话题:)
  • 大家好。我觉得你有点夸张了。我已经不在学校了,我也不想让你做我的作业,因为我不会从中学到任何东西。我错过了递归的主要思想,也没有代码可以给你看。我所需要的只是一个方向和指导,现在我已经有了。所以感谢那些决定提供帮助的人:)
猜你喜欢
  • 2013-01-01
  • 2014-02-17
  • 1970-01-01
  • 2022-01-15
  • 2017-10-09
  • 1970-01-01
  • 2019-07-27
  • 1970-01-01
相关资源
最近更新 更多