【发布时间】:2018-01-04 13:26:51
【问题描述】:
我最近在准备面试时在网上遇到了以下问题
想象一个随机分布在白板上的水滴,设计一种算法,通过用线条连接水滴来创建最大的封闭区域。
问题含糊不清,没有更多信息。我想出了一个部分的方法,但我不太确定它是否正确。
假设水滴代表图上的点,为了找到由连接水滴包围的最大区域,我们需要:
- 找到位于该集群外围的所有点。连接位于外围或边界上的所有点将得到最大的面积。
- 要查找位于外围的点:
- 对 x 和 y 坐标进行排序。连接位于极端的点。因此,我们会将具有最大 x 坐标的点与最小 x 坐标以及最大/最小 y 坐标连接起来。 (我不太确定这种方法。)
- 我不知道如何找到这个图形的面积,因为它的范围可以从 3 到 n 边。
我还可以验证并确保输入中的水滴数量大于或等于 3,因为我们需要至少 3 个点才能找到该区域。
编辑: 上述寻找水滴分布外围点的算法是错误的。
【问题讨论】:
-
你在问什么?
-
@rvheddeg 2 件事。我为查找最大对象指定的算法是否正确(查找位于外围的点:)。以及应该使用什么方法来找到 n 边多边形的面积。
标签: algorithm