LeetCode 第973题 K Closest Points to Origin【排序】java

原题地址:https://leetcode.com/problems/k-closest-points-to-origin/

题目:离原点最近的K个点

有一个平面上一堆点的列表。找到离原点(0,0)最近的K个点。距离用欧几里得距离计算。顺序无所谓。

例一

输入: points = [[1,3],[-2,2]], K = 1
输出: [[-2,2]]
解释: 
(1, 3)和原点的距离是sqrt(10)。
(-2, 2)和原点的距离是sqrt(8)。
因为sqrt(8) < sqrt(10),所以(-2, 2)最接近原点。

例二

输入: points = [[3,3],[5,-1],[-2,4]], K = 2
输出: [[3,3],[-2,4]]

我的实现方式很简单,建立了一个类distance,包含距离和数组中点的索引。然后一边循环,算出所有的距离,然后根据距离排序,然后输出结果。只需要输出K个元素,用堆来做可能会更快,懒得尝试了。

耗时36 ms快于46.32%的Java代码。

代码地址:https://github.com/tinyfool/leetcode/tree/master/src/p0973

其他排序相关题目,参照排序主题

打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据