【发布时间】:2017-02-12 03:37:53
【问题描述】:
我是 java 新手,通过搜索发现了很多关于我正在寻找但不完全是的帖子。 我正在尝试使用基本的 Java 技术来计算一个数字匹配的 UNIQUE 次数。 例如数组 {2,3,2,3,2} 将有两个唯一的匹配对情况 (2,2) 和 (3,3) 到目前为止(见下面的代码)我似乎能想到的只是计算有多少 TOTAL 配对。在示例情况下,结果将是四种情况 (2,2)、(2,2)、(3,3)、(2,2)。需要明确的是,这是第一学期的问题类型的东西,所以我不能使用地图或更高级的技术。带有计数和迭代的简单循环。谢谢
int count = 0;
for( int i=0;i<=hand.length-2 ;i++)
{
for( int j=i+1;j<=hand.length-1;j++)
{
if (hand[j] == hand[i])
{
count = count + 1;
}
}
}
System.out.println(count);
【问题讨论】:
-
数字有合理的界限吗?比如,它们都是 1 到 100 之间的整数之类的?
-
我认为你实际上不需要构建所有对来解决你的问题,如果它只是你所追求的计数。如果您将数组转换为将条目映射到出现次数的
Map<Integer, Integer>,那么floor(count / 2)应该给出每个数字的对数 no? -
更多上下文,在这种特殊情况下,我仅限于一个包含 1-9 范围内的五个值的数组。还尝试使用循环等基本技术来解决,因为我还没有进入更高级的主题
-
哦,这是作业题吗?你究竟被允许使用什么?你可以修改数组吗?
-
没错。刚刚在java中弄湿了我的脚,所以虽然所有这些使用Map的答案看起来都很棒......我仅限于第一学期的Java类型技术。我应该在原始帖子中更清楚。无需修改或排序数组。我们可以使用循环和计数。