找到包含给定区域的矩形中包含的最大点数

时间:2016-04-17 20:00:46

标签: algorithm graph-algorithm

给定点b [0..n-1]的数组,每个点都有.x和.y坐标。 n可能很大。

设计一个有效的问题算法:给定一个区域,找到包含给定区域的矩形中包含的最大点数。

我希望它能按时间复杂度O(n ^ 2 * k)完成,其中k是矩形或更好的最大点。

1 个答案:

答案 0 :(得分:0)

如果你有三角形的顶点,这很简单。您可以为数组b中的每个点解决交叉积。

您可以计算Cross1 = [AO, AB], Cross2 = [BO, BC], Cross3 = [CO, CA]

例如Cross1 = AO.x * AB.y - AO.y * AB.x

每个变量Cross1, Cross2, Cross3必须是相同的符号。

您为每个点检查此项并将点数计入矩形。然后你有kN = O(N)

rectangle