在最近的一次采访中,我被问到:
如果您有2个列表
listA的 数组listB
每个都是大小1000并包含相同的元素1 - 1000.如果一个元素,N被添加到listB,你如何确定该元素的值?
我通过说从listA中减去listB来正确回答,剩下的就是值。
然后他说如果我们在添加N之后只有listB会怎样。您如何确定添加的值?
我没有回答这个!!!!我应该知道,但我无法想到它。他给出的提示是做我在第一个问题中做的类似事情。
有什么建议吗?
答案 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)