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;
}
};