mic*_*Ice 5 algorithm data-structures
给定平面上的N个点(形式为(x,y)),找到在其上具有最大点数的圆?PS:该点应位于圆的圆周上。解决此问题的最有效算法是什么?它如何工作?您将使用哪种数据结构来解决此问题。这是在FANG编码采访之一中提出的。
作为起点,简单的O(N 3 )解决方案是找到与每个唯一的三重点对应的圆,同时计算找到的每个圆的出现次数。
如果一个圆上有N 个点,那么你会找到它N-选择-3次,所以你找到次数最多的圆就是其上点最多的圆。
任何实际实施都会存在复杂性,但它们是不同的复杂性,具体取决于您的观点的表示方式以及您想要精确的还是近似的答案。