擅长:python、mysql、java
<p>你说你可以假设所有的段都是正确的顺序,这意味着独立于坐标顺序,你的问题基本上是合并排序的数组。在</p>
<p>如果没有按正确的顺序定义一个段,就必须翻转它,但这对主算法没有任何影响。在</p>
<p>只需定义此重新排序函数:</p>
<pre><code>def reorder(seg):
s1 = min(seg)
e1 = max(seg)
return (s1, e1)
</code></pre>
<p>这个比较函数呢</p>
^{pr2}$
<p>一切就绪,只需运行一个典型的合并算法:</p>
<p><a href="http://en.wikipedia.org/wiki/Merge_algorithm" rel="nofollow">http://en.wikipedia.org/wiki/Merge_algorithm</a></p>
<p>我真的不明白你说的另一个问题:</p>
<p>使用一个<a href="http://en.wikipedia.org/wiki/Segment_tree" rel="nofollow">segment tree</a>,这是一个专门用来存储段的结构:)</p>