【发布时间】:2013-05-28 09:27:36
【问题描述】:
有很多符号游戏都以这种方式工作,所以这对您来说应该很熟悉。
事实:
我有两个相同长度为 4 的数组。 (A[4] 和 B[4])
我用 1 到 6 的随机整数填充它们。
我无法以任何方式对它们进行排序(它们必须保持不变)。
问题:
我需要比较它们,然后我需要有 3 个值。第一个需要计算在同一个地方有多少相同的元素。我这样做并且它正在工作:
int first = 0;
int k = 0;
for (int j=1; j<=4; j++)
{
k++;
if (A[k] == B[j])
{
first++;
}
}
第二个需要计算有多少元素相同但不在同一个地方。第三个需要计算有多少元素根本不一样。
我需要一个解决方案来计算第二个或第三个数字,因为在那之后我可以像 4-(first+second) 或 4-(first+second) 一样减去。
【问题讨论】:
-
您的第一个解决方案是错误的。您需要有一个嵌套循环,该循环针对第二个数组上的所有元素上的第一个数组上的每个元素运行。另一件事,数组是零基数,你的循环应该从0到3开始。
-
@MarounMaroun:除了索引,第一种解决方法是正确的。
-
是的,第一个解决方案是正确的,除了索引
j应该以 0 开头。 -
这是为了一些算法难题吗?因为你的建议运行在 O(n^2)
-
I need a solution to count either...。你试过什么?