leetcode:1471. 數組中的 k 個最強值

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;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章