【发布时间】:2019-11-28 13:23:05
【问题描述】:
在开始编码和使用列表或数组列表时,我已经很久没有想到什么了。在将一个数组的值与另一个数组中的所有其他元素进行比较时,我曾经在两个 for 循环中进行,因为这是最简单的方法。但最近我开始知道它会增加很多时间复杂度,我想到了另一个解决方案。任何人都可以帮助我使用任何算法解决这个案例。我正在使用 java.but 任何语言的解决方案都可以。只需要执行此操作的算法。提前致谢。
这就是我正在做的:
a1 = [1,2,3,4,5]
b1 = [9,5,4,3,8,3,7]
我想检查 a1 中的元素在 b1 中出现的时间
所以我正在做的是:
count = 0;
for(int i = 0;i <a1.length;i++)
{
for(j=0;j<b1.length;j++)
{
if (a1[i] == b1[j])
{
count = count+1;
}
}
}
print("count is" count);
【问题讨论】:
-
使用hashing,例如带有
Set或Map。 -
定义“比较”的含义。发布您编写的方法,并解释它应该做什么。给出示例输入和输出。
-
谁能提到在一个数组中执行此过程的任何算法
-
如果你想提高内存效率:排序并比较。
标签: java algorithm loops for-loop data-structures