1471. 数组中的 k 个最强值
- 要想找到中位数,得先进行排序
- 找到中位数之后,从左右两边一起往中间靠,满足条件的就
push
,直到k个
class Solution {
public:
vector<int> getStrongest(vector<int>& arr, int k) {
vector<int> ans;
sort(arr.begin(), arr.end());
int num = arr[(arr.size()-1)/2];
int left = 0, right = arr.size()-1;
while(k--){
if(num - arr[left] > arr[right] - num){
ans.push_back(arr[left]);
left ++;
}
else {
ans.push_back(arr[right]);
right --;
}
}
return ans;
}
};