gpt4 book ai didi

arrays - 如何判断两个数组是否相同?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:20:04 24 4
gpt4 key购买 nike

相同 我的意思是两个数组包含相同的元素,数组中元素的顺序在这里无关紧要。

我想出的解决方案是这样的(结果是评论中指出的错误方法):

<del> if the size of two Arrays are equal
See True, find all elements of Array A in Array B
All Found, find all elements of Array B in Array A
All Found, then I get conclusion two Arrays are identical</del>

但是,在时间复杂度方面有没有更好的算法呢?

最佳答案

假设您有一个 User[]阵列 1 和 User[]数组 2。您可以遍历数组 1 并将它们添加到 Dictionary<User, int>字典,其中键是用户,值是计数。然后循环遍历第二个数组,并为数组 2 中的每个用户递减字典中的计数(如果计数大于 1)或删除元素(如果计数为 1)。如果用户不在字典中,那么您可以停止,数组不匹配。

如果您到达最后并且之前检查过数组的长度相同,则数组匹配。如果您之前没有检查长度(当然您仍然应该检查长度),那么您可以在完全遍历数组 2 后验证字典现在是否为空。

我不确切地知道它的性能如何,但它比对两个列表进行排序并逐个元素地循环遍历它们要快。虽然需要更多内存,但如果数组不是超大,那么内存使用应该不是问题。

关于arrays - 如何判断两个数组是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6550706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com