假设有两个数组,每个数组都包含大量元素。现在我想比较两者中的每个元素,如果我只是像通常那样:使用两个嵌套的for循环来完成这项工作,那将非常耗时。是否有更快的解决方法来实现相同的目的?谢谢!
答案 0 :(得分:1)
诀窍是加速查找,比如使用哈希。
根据具体情况,可以使用以下一些变体:
my %array1;
++$array1{$_} for @array1;
for (@array1) {
say "$_ isn't in \@array1"
if !$array1{$_};
}
如果可能重复:
my %array1;
++$array1{$_} for @array1;
my %array2;
for (@array1) {
say "$_ isn't in \@array1"
if ++$array2{$_} > ($array1{$_} // 0);
}