显然有一种暴力方法可以解决这个问题,复杂度为O(n^3)。是否有更高效的方法?
显然有一种暴力方法可以解决这个问题,复杂度为O(n^3)。是否有更高效的方法?
N + N^2 < N^3
这里是一个匆忙创建且未经测试的JavaScript函数示例:
function getESCT(points) {
var hashset = {};
points.forEach(function(pt) { hashset[pt.x + "," + pt.y] = pt; });
for(var i=0; i<points.length; i++) {
var pt1 = points[i];
for(var j=0; j<points.length; j++) {
var pt2 = points[j];
var key = ((pt1.x + pt2.x) / 2) + "," + ((pt1.y + pt2.y) / 2);
if(hashset[key]) {
return hashset[key];
}
}
}
return null;
}