Logic 实现两个阵列比较的最佳逻辑
我有两个数组-arr1和arr2,在这里两个数组都有一些公共项和许多不常见项,首先应该从两个数组中删除公共项 因此,对于arr 1中的每个不常见项,可能是arr 2中两个或多个值的总和,反之亦然。如果找到总和,则必须从相应数组中删除这些值。最后,输出应该是两个数组上不匹配的值Logic 实现两个阵列比较的最佳逻辑,logic,combinations,permutation,Logic,Combinations,Permutation,我有两个数组-arr1和arr2,在这里两个数组都有一些公共项和许多不常见项,首先应该从两个数组中删除公共项 因此,对于arr 1中的每个不常见项,可能是arr 2中两个或多个值的总和,反之亦然。如果找到总和,则必须从相应数组中删除这些值。最后,输出应该是两个数组上不匹配的值 我需要一个逻辑,在这里我可以以更快的方式进行计算。我不会给出实现您的逻辑的代码,但我很乐意为您指出正确的方向 我在C++中编码,所以我会对此进行回答。如果你想要一种不同的语言,我相信你可以自由选择 要删除公共元素,请执
我需要一个逻辑,在这里我可以以更快的方式进行计算。我不会给出实现您的逻辑的代码,但我很乐意为您指出正确的方向 我在C++中编码,所以我会对此进行回答。如果你想要一种不同的语言,我相信你可以自由选择 要删除公共元素,请执行以下操作: 首先对数组
arr1
和arr2
进行排序。然后对它们做一个测试。这将有效地在线性时间内运行。然后从中创建两个,例如set1
和set2
删除与另一个数组中的元素相加的对的步骤
为此,您需要遍历arr1
中所有可能的元素对,并检查set2
中是否存在这对元素的总和。对于arr2也要这样做,必要时拆下该元件
这可以在O(n2)中完成。如果您不想创建额外的集合,您可以随时用性能换取内存,只需在arr1
对之间循环,并通过执行二进制搜索来检查arr2
中的和。
然后,时间复杂度可能上升到O(n2 log(n)) 到目前为止你试过什么?从目前的情况看,你似乎希望我们为你解决整个问题,但不清楚你需要什么比我们更快