在列表中找到插入的元素

时间:2011-10-21 02:22:09

标签: algorithm

在最近的一次采访中,我被问到:

如果您有2个列表

listA的 数组listB

每个都是大小1000并包含相同的元素1 - 1000.如果一个元素,N被添加到listB,你如何确定该元素的值?

我通过说从listA中减去listB来正确回答,剩下的就是值。

然后他说如果我们在添加N之后只有listB会怎样。您如何确定添加的值?

我没有回答这个!!!!我应该知道,但我无法想到它。他给出的提示是做我在第一个问题中做的类似事情。

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

您可以对两个列表以及您将拥有的新内容(N)进行异或。这是第一个问题的答案。

答案 1 :(得分:2)

A汇总到sumA。插入一个新元素。现在将列表汇总到sumB。从sumA中减去sumB。 Viola是一种乐器。

答案 2 :(得分:1)

假设在插入新元素时列表没有自动排序,如果您知道列表的“添加”方法实现是什么,则可以确定新元素是什么。

如果列表通过追加添加新元素,您知道新元素将是列表中的最后一个元素。

如果列表通过预先挂起来添加新元素,则您知道新元素将是列表中的第一个元素。

如果您将元素插入到列表中,则您确切知道该元素的位置,因为您指定了该位置。

如果列表在添加元素时随机插入元素,那么你运气不好。在这种情况下,您将需要使用某些东西作为比较(原始列表)。

这是一个对象不仅具有状态,而且还具有行为的结果。

答案 3 :(得分:0)

考虑到我所做的大部分工作都是基于SQL的:

select * 
from listb b
left outer join lista a on (a.id = b.id)
where (a.id is null)