【发布时间】:2020-07-29 20:03:03
【问题描述】:
在线性时间O(N)内解决这个问题有问题吗?我认为解决它的唯一方法是使用 sort(),这给了我 O(NlogN) 时间。
问题: 我们有一个平面上的点列表。找到离原点 (0, 0) 最近的 K 个点。
(这里,平面上两点之间的距离是欧几里得距离。)
您可以按任何顺序返回答案。答案保证是唯一的(除了它的顺序。)
我的解决方案:
/*
d = sqrt ( (x-0)^2 + (y-0)^2 )
*/
var kClosest = function(points, K) {
points.sort((a,b) => {
const d1 = Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2));
const d2 = Math.sqrt(Math.pow(b[0], 2) + Math.pow(b[1], 2));
return d1-d2;
});
return points.splice(0, K);
};
【问题讨论】:
标签: javascript time-complexity