【发布时间】:2021-07-15 18:22:41
【问题描述】:
我正在尝试创建一种方法来计算数组中唯一元素的数量。例如,如果数组包含 [1,2,3,4,5,1,5],则有 3 个唯一元素,我的方法应该返回数字 3。
这是我目前得到的:
static int numberOfUniqueIntegers(int[] number, int len) {
int unique = 0;
for (int i = 0; i < len; i++){
int j;
for (j = 0; j < i; j ++) {
if (number[i] == number[j]) {
break;
}
}
if (i == j);
unique++;
}
return unique;
}
该方法接受数组number和一个整数len(即数组的长度)。
但在这种情况下:[1,2,3,4,5,1,5] 我的方法将返回 5,而不是 3。我需要检查该数字是否以前重复过,如果没有 独一无二的++。
【问题讨论】:
-
在计数前对复制数组中的数字进行排序
-
Java 有一个 Set 集合。这将非常适合您的用例。
-
@Moritz Makowsi 的回答将是最好的起点。最好使用调试器或输出一些日志来弄清楚你的代码在做什么。
-
您的问题不清楚。
[1, 2, 3, 4, 5, 1, 5]中有 5 个独特的元素:[1, 2, 3, 4, 5]。怎么只有3个?什么意思? -
@JonZarate 有 3 个元素只出现一次。