我正在尝试解决这个问题,但我被困在如何使这项工作上。我将发布问题,然后解释我在其中的位置。
给定一组总大小为 n 的水平线段和垂直线,我们要计算与每条垂直线相交的水平线段的数量。该算法的复杂度应该是 O(n*logn),并且应该通过排序来实现,然后是线性扫描。水平线段由两个 x 坐标和一个 y 坐标指定,而垂直线由单个 x 坐标指定。输出是一个数字数组 count[l],每个垂直线 l 一个。
对于排序,我想我会按照最早完成的行(即最小的第二个 x 坐标,或者在垂直线的情况下,只是它的一个 x 坐标)对整个集合进行排序,这样我就有一个线性进展所有的行。我只是对如何进行排序后的线性扫描感到困惑。如果有人有任何提示、提示或指南,我将不胜感激!
PS:这是期中练习,虽然不一定是作业,但我还是会这样标记。