Vla*_*any 3 java arrays recursion
假设我有一个长度为 的数组,n其中可以出现的唯一值是 0-9。我想创建一个递归函数,返回数组中不同值的数量。
例如,对于以下数组:int[] arr = {0,1,1,2,1,0,1}--> 该函数将返回,3因为此数组中出现的唯一值是0,1和2。
该函数接收一个 int 数组并返回 int ,如下所示:
int numOfValues(int[] arr)
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Java 8,则可以使用简单的单行代码来完成此操作:
private static int numOfValues(int[] arr) {
return (int) Arrays.stream(arr).distinct().count();
}
Run Code Online (Sandbox Code Playgroud)
Arrays.stream(array)返回IntStream由数组元素组成的 。然后,distinct()返回IntStream仅包含此流的不同元素的 。最后,count()返回此流中的元素数。
请注意,count()返回 along因此我们需要int在您的情况下将其转换为 an 。
如果你真的想要一个递归解决方案,你可以考虑以下算法:
这应该让您有足够的洞察力来在代码中实现这一点。
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |