leetcode 973 最接近原點的 K 個點

2021-10-09 03:36:57 字數 1317 閱讀 1701

我們有乙個由平面上的點組成的列表 points。需要從中找出 k 個距離原點 (0, 0) 最近的點。

(這裡,平面上兩點之間的距離是歐幾里德距離。)

你可以按任何順序返回答案。除了點座標的順序之外,答案確保是唯一的。

示例 1:

輸入:points = [[1,3],[-2,2]], k = 1

輸出:[[-2,2]]

解釋:

(1, 3) 和原點之間的距離為 sqrt(10),

(-2, 2) 和原點之間的距離為 sqrt(8),

由於 sqrt(8) < sqrt(10),(-2, 2) 離原點更近。

我們只需要距離原點最近的 k = 1 個點,所以答案就是 [[-2,2]]。

示例 2:

輸入:points = [[3,3],[5,-1],[-2,4]], k = 2

輸出:[[3,3],[-2,4]]

(答案 [[-2,4],[3,3]] 也會被接受。)

1 <= k <= points.length <= 10000

-10000 < points[i][0] < 10000

-10000 < points[i][1] < 10000

主要是用這道題來熟悉一下堆的應用。

首先計算出來每個點到原點的距離,然後用前k個數字建乙個大小為k的大根堆,當堆建好後,後面的數字進來時,先push進堆,再pop出堆即可。

class

solution

:def

kclosest

(self, points: list[list[

int]

], k:

int)

-> list[list[

int]]:

import heapq

distances =

for each_point in points:0]

**2+ each_point[1]

**2))

heap =

for index in

range

(len

(distances)):

if index < k:

(-distances[index]

, index)

)else:(

-distances[index]

, index)

) ans =

while heap:[1

])return ans

leetcode973 最接近原點的 K 個點

使用sort函式,自定義排序型別 class solution return 排序函式sort 標頭檔案 include,第三個引數可自定義的比較函式指標預設公升序 bool cmp const type1 a,const type2 b 比較a和b,如果想要公升序則讓 a b,返回true 如果想...

LeetCode 973 最接近原點的 K 個點

我們有乙個由平面上的點組成的列表points。需要從中找出k個距離原點 0,0 最近的點。這裡,平面上兩點之間的距離是歐幾里德距離。你可以按任何順序返回答案。除了點座標的順序之外,答案確保是唯一的。示例1 輸入 points 1,3 2,2 k 1 輸出 2,2 解釋 1,3 和原點之間的距離為 s...

973 最接近原點的 K 個點

我們有乙個由平面上的點組成的列表points。需要從中找出k個距離原點 0,0 最近的點。這裡,平面上兩點之間的距離是歐幾里德距離。你可以按任何順序返回答案。除了點座標的順序之外,答案確保是唯一的。示例 1 輸入 points 1,3 2,2 k 1 輸出 2,2 解釋 1,3 和原點之間的距離為 ...