我們有乙個由平面上的點組成的列表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]] 也會被接受。)
本題和 劍指offer 40. 最小的k個數 相同。
基於快速排序的思想。每次選中乙個主元pivot
,將比pivot
小的元素移動至左側,若小於pivot
的元素個數剛好為k
,則返回已經篩選的前k
位;
否則,若小於pivot
的元素小於k
,則對前半部分進行排序,若小於pivot
的元素大於k
,則對後半部分進行排序。
class solution
int partition(vector> &points, int left, int right)
swap(points[i], points[right]);
return i;
}public:
vector> kclosest(vector>& points, int k)
vector> result;
for(int i = 0; i < k; i++)
return result;
}};
leetcode 973 最接近原點的 K 個點
我們有乙個由平面上的點組成的列表 points。需要從中找出 k 個距離原點 0,0 最近的點。這裡,平面上兩點之間的距離是歐幾里德距離。你可以按任何順序返回答案。除了點座標的順序之外,答案確保是唯一的。示例 1 輸入 points 1,3 2,2 k 1 輸出 2,2 解釋 1,3 和原點之間的距...
leetcode973 最接近原點的 K 個點
使用sort函式,自定義排序型別 class solution return 排序函式sort 標頭檔案 include,第三個引數可自定義的比較函式指標預設公升序 bool cmp const type1 a,const type2 b 比較a和b,如果想要公升序則讓 a b,返回true 如果想...
973 最接近原點的 K 個點
我們有乙個由平面上的點組成的列表points。需要從中找出k個距離原點 0,0 最近的點。這裡,平面上兩點之間的距離是歐幾里德距離。你可以按任何順序返回答案。除了點座標的順序之外,答案確保是唯一的。示例 1 輸入 points 1,3 2,2 k 1 輸出 2,2 解釋 1,3 和原點之間的距離為 ...