在排序陣列中找最接近的K個數

2021-09-25 17:21:59 字數 916 閱讀 6494

給乙個目標數target, 乙個非負整數k, 乙個按照公升序排列的陣列a。在a中找與target最接近的k個整數。返回這k個數並按照與target的接近程度從小到大排序,如果接近程度相當,那麼小的數排在前面。

樣例 1:

輸入: a = [1, 2, 3], target = 2, k = 3

輸出: [2, 1, 3]

樣例 2:

輸入: a = [1, 4, 6, 8], target = 3, k = 3

輸出: [4, 1, 6]

o(logn + k) 的時間複雜度

k是乙個非負整數,並且總是小於已排序陣列的長度。

給定陣列的長度是正整數, 不會超過 10^410​4​​

陣列中元素的絕對值不會超過 10^410​4​​

輸入測試資料 (每行乙個引數)如何理解測試資料?

bool cmp(paira, pairb) 

class solution

vector> vc;

for(auto mit=mymap.begin(); mit!=mymap.end(); mit++)

sort(vc.begin(), vc.end(), cmp);

//int count = 0;

for(auto vit=vc.begin(); vit!=vc.end(); vit++)

return ret;

}};

排序陣列中尋找k的個數

統計乙個數字在排序陣列中出現的次數。既然陣列有序,考慮二分查詢。記錄一下實現細節,劍指offer中使用的遞迴形式,我的 用迴圈實現。迴圈的條件用start和end相對大小來控制,這也是二分查詢的原始控制條件。在尋找第乙個k的時候,如果mid已經是k,但是這個數之前也是k,說明這並不第乙個k,此時應該...

排序 中等 973 最接近原點的 K 個點

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

無序陣列中找第K個的數

題目分析 也就是從小往大排,第k小那個數。方法1 排序 nlogn 方法2 利用堆 nlogk 首先將前k個元素構建最大堆,堆頂是前k個元素中第k小的元素。這步複雜度klogk 遍歷剩餘元素 這步複雜度 n k logk 如果新元素 堆頂 堆頂不可能是第k大元素 移除堆頂 將新元素插入堆 否則 新元...