arrays - 确定两个数组在排列方面是否相同?

标签 arrays algorithm

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/

相关文章:

javascript - 如何使用reduce对对象数组的属性进行求和

C++如何管理连续动态数组的迭代器

python - 查找数百万个范围/间隔之间的重叠

arrays - Swift 崩溃 : Array. _allocateBufferUninitialized

javascript - 返回只有子项的父项与嵌套对象的对象数组中的给定搜索字符串匹配

arrays - 迭代数组值并分配给新变量 shell

algorithm - 从网格上的列表中寻找随机的类似噪声的项目

c# - 动态调度系统使用什么算法?

c++ - 离散曲线进化算法

c++ - 是否有 C++ 函数来计算两个索引之间的距离?