赞
踩
(1) 对nums
数组从小到大排序,注意到mid=nums.size()/2位置处的值为中位数;
(2) 判断中位数与k的大小关系:
class Solution { public: long long minOperationsToMakeMedianK(vector<int>& nums, int k) { int n = nums.size(); // 对nums进行从大到小排序 ranges::sort(nums); long long res = 0; // 排序后, 若数组长度为偶数, mid位置为较大值 int mid = n / 2; if (nums[mid] > k) { for (int i = mid; i >= 0 && nums[i] > k; i--) { res += nums[i] - k; } } else { for (int i = mid; i < n && nums[i] < k; i++) { res += k - nums[i]; } } return res; } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。