数据结构过滤所有成对更大的点?

时间:2015-02-02 18:36:08

标签: algorithm data-structures

以下有什么好的实施方式?

有问题的数据结构不得包含任何比另一个更大的点。例如(2,11)> (1,10),(5,5)不是-gt(1,5)。输入是在线进行的,因此无法预先订购/准备。

Example input

好的,这可以用上面的图片显示。因此,每个点都按照指示的顺序插入,如下所示:

  1. (2,2)已插入
  2. (2,4)插入,而不是> (2,2)反之亦然
  3. (3,3)> (2,2)等未插入
  4. (1,1);所有其他> so(1,1)插入而其他所有其他删除
  5. 想法?

2 个答案:

答案 0 :(得分:1)

从点数组(-Inf,Inf)和(Inf,-Inf)

开始

根据以下规则

对数组中的元素进行排序
for (x,y) and (t,z)
if x<t (x,t) is before (t,z)
if x=t and y>z then (x,t) is before (t,z)

如果要插入元素,请找到插入元素之前具有最高顺序的元素,并将其命名为EBefore。还可以找到插入元素后面的最低顺序元素,并将其命名为EAfter。您可以在找到这两个元素时使用二进制搜索。

如果是

的行业产品
EInserted x (EAfter - EBefore) > 0

删除EBefore和EAfter之间的所有元素,并在它们之间插入EInserted。如果产品是否定的,则不要添加元素。

答案 1 :(得分:0)

单个链接列表,其中的点数成对比另一个点少。

考虑比较当前步骤中列表中每个点的新点的情况。 Сheck:我们的观点不到列表中的检查点吗?

如果是,请从列表检查点中删除。

否则,只需在列表中添加一个新点即可。

最后,列表中有这样的观点。