LeetCode 2602. 使数组元素全部相等的最少操作次数
原题链接
中等
作者:
我是java同学
,
2023-09-15 13:28:44
,
所有人可见
,
阅读 52
class Solution {
public:
typedef long long LL;
vector<long long> minOperations(vector<int>& nums, vector<int>& queries) {
int n = nums.size(), m = queries.size();
vector<LL> s(n + 1);
vector<LL> res(queries.size());
sort(nums.begin(), nums.end());
for (int i = 1; i <= n; i ++ ) s[i] = s[i - 1] + nums[i - 1];
for (int i = 0; i < queries.size(); i ++ ) {
int q = queries[i];
int j = lower_bound(nums.begin(), nums.end(), q) - nums.begin();
LL left = (LL)j * q - s[j];
LL right = s[n] - s[j] - (LL)(n - j) * q;
res[i] = left + right;
}
return res;
}
};