gpt4 book ai didi

java - 查找数组中有多少个不同的值

转载 作者:行者123 更新时间:2023-11-30 06:12:19 26 4
gpt4 key购买 nike

假设我有一个长度为 n 的数组,其中唯一可以出现的值是 0-9。我想创建一个递归函数,返回数组中不同值的数量。

例如,对于以下数组:int[] arr = {0,1,1,2,1,0,1} --> 函数将返回 3,因为此数组中出现的唯一值是 012

函数接收一个int数组并返回int像这样:

int numOfValues(int[] arr)

最佳答案

如果你使用的是 Java 8,你可以用一个简单的一行代码来做到这一点:

private static int numOfValues(int[] arr) {
return (int) Arrays.stream(arr).distinct().count();
}

Arrays.stream(array)返回 IntStream由数组的元素组成。然后,distinct()返回仅包含此流的不同元素的 IntStream。最后,count()返回此流中的元素数。

请注意,count() 返回一个 long,因此我们需要根据您的情况将其转换为 int


如果你真的想要一个递归的解决方案,你可以考虑下面的算法:

  • 如果输入数组的长度为 1,则元素不同,因此答案为 1。
  • 否则,让我们删除第一个元素并计算这个新数组中不同元素的数量(通过递归调用)。然后,如果第一个元素包含在这个新数组中,我们就不再计算它,否则我们计算并加 1。

这应该让您有足够的洞察力来在代码中实现它。

关于java - 查找数组中有多少个不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33036434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com