arrays - 如何计算两个数组之间相同数量的元素,不包括重复项

标签 arrays for-loop duplicates

所以我有
A = {1,3,3,4}
B = {5,4,7,3}

我想看看数组 B 的元素在数组 A 中出现了多少次,但是,我只想对数组 A 中的每个元素计算一次。因此,如果 3 出现多次,则 3 将只计算一次,依此类推。

在这里,我的答案是 2,因为我有 3,4 个,它们在数组 B 中,也在数组 A 中。

这是我到目前为止:

int count = 0; 
for(int z = 0; z <4; z++)
    {
      for(int y = 0; y <4; y++)
      {
         if(arrayA[z] == arrayB[y])
         {
            count++; 
         }
      }//end for loop 
    }//end for loop 

当我运行这个时,我得到 3。我知道为什么。我正在计算数组 A {3,3,4} 中的重复项。我怎么不计算它们?我被困住了。

这是我一直坚持的一个次要功能。

最佳答案

一个简单的解决方案可能是引入另一个数组来存储计数并将其初始化为零(我使用的是 c#,因此默认情况下它会用 0 初始化 int 数组)。

int[] totals = new int[10];
int[] arrayA = new int[] { 1,3,3,4};
int[] arrayB = new int[] { 5,4,7,3};
for (int z = 0; z < 4; z++)
{
    for (int y = 0; y < 4; y++)
    {
        if (arrayA[z] == arrayB[y])
        {
            totals[arrayA[z]]++;
        }
    }//end for loop 
}//end for loop

// Count your numbers through indices 
for (int i = 0; i < totals.Length; i++)
{
    if (totals[i] > 0)
    {
    count++;
    }
} //end for loop

关于arrays - 如何计算两个数组之间相同数量的元素,不包括重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33622164/

相关文章:

javascript - 如何从数组的元素中获取不同的组合?

python - 为什么这个for循环没有效果? (Python)

javascript - 如何让for循环等待函数在javascript中执行

java - 在字符串链表的链表中查找重复项的最有效方法 - java

MySQL 重复错误与 ALTER IGNORE TABLE

python - 如何找出列表列表中是否有重复项

c# - 如何安全地反序列化键/数据格式 JSON 响应

arrays - Matlab - 仅在三维中转置 3D 矩阵

javascript - 返回对象数组中名称(许多名称)的最后一次出现

r - 避免在 R 中使用多个 for 循环来计算矩阵