我必须找到一种算法,它可以找到两组数组之间的交集总数,而其中一个数组是排序的。计算两组序列的交点(线)
这两个阵列总共给我们提供了7个交点。
它存在什么样的算法来帮助我解决这个问题?
我已经使用搜索按钮,但没有找到任何可以解决这个问题的东西。
感谢
我必须找到一种算法,它可以找到两组数组之间的交集总数,而其中一个数组是排序的。计算两组序列的交点(线)
这两个阵列总共给我们提供了7个交点。
它存在什么样的算法来帮助我解决这个问题?
我已经使用搜索按钮,但没有找到任何可以解决这个问题的东西。
感谢
给定两个数M和N中,线不会相交如果
在其它两种情况:
线做相交。
在该示例中,8位于顶行的所有4位数字的左侧,右侧是3位数字的底部,因此8位与三位数字相交。
5位于顶部8的右侧,底部8的左侧,给出一个交叉点。 5是左边4和1顶部,右边4和1底部,再给出两个。所以5与三个数字相交。
请注意,我们计算了两次5和8的交点。实际上每个十字路口都会被计算两次。如果你完成了这个例子,你会计算14个交点。最后除以2得到答案。
很好的解释,谢谢。 – Jozo
可以代表每行y=a+bx
,然后通过比较它们的y
值比较各行的人。
每条线最多有一个相交线。
心灵阐释?是的,每条线与每条线最多有一个交点。 在这种情况下,+ bx是什么? A在索引号对应的数值? – Jozo
@Jozo一个直接的线由函数'''y = a + bx'''定义,你可以在这里阅读更多:https:// en。wikipedia.org/wiki/Line_(几何) –
您是否正在尝试以最大效率为具有数百万条目的数组执行此操作,或者数组是否很小(例如,最多100个条目? – user3386109
阵列很小,但元素的数量应该不重要,即我不在乎效率。 – Jozo