这是亚马逊的面试问题我有我的回答是查找两个数组的交集在Javascript
function intersection (A , B)
{
var C = [];
for (var a in A) if (B.indexOf(a) != -1) C.push(a);
return C;
}
,他问什么复杂的顺序是和我说,我引用准确,
O(m * n个),其中m =则为a.length和n = b.length个
和他说有一个更好的方式来做到这一点,我很喜欢跆拳道?????? ?他说,使用A
和B
为对象,我很喜欢
“但是你说这些都是阵列那是你的问题!!!!”
有人可以帮我一下吗?
我不知道如何'作为使用对象的帮助,但是如果你在开始之前从'B'开始查找表(字典),那么你可以在O(n)中完成。 – Lee
如果您在另一个JavaScript访问中,请勿使用'for ... in'来遍历数组。 – Pointy
btw在这个问题上有很多问题,例如:http://stackoverflow.com/questions/1885557/simplest-code-for-array-intersection-in-javascript – Lee