转载

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

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

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

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

例一

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

例二

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

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

LeetCode 第973题 K Closest Points to Origin【排序】java
耗时36 ms快于46.32%的Java代码。

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

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

原文  http://codechina.org/2019/07/leetcode-973-k-closest-points-to-origin-sort-java/
正文到此结束
Loading...