Possible Duplicate:
Check if array B is a permutation of A
有没有办法判断 O(n)
中两个数字数组(可以包含正数、负数或重复)是否彼此排列时间复杂度和O(1)
空间复杂度?由于空间有限,我无法解决它。
最佳答案
如果数字是整数 - in-place radix sort可以为您提供 O(nlogk)
时间,其中 k
是数字的范围,n
是元素的数量。
请注意,该算法需要 O(logk)
空间,用于递归调用的堆栈跟踪。
如果您可以将k
绑定(bind)到一个常量(例如2^64) - 您将获得O(n)
时间,O(1)
空格。
排序后 - 您可以简单地迭代两个数组并检查它们是否相同。
关于arrays - 确定两个数组在排列方面是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11490390/