力扣2615.等值距离和
-
分组求距离和
-
class Solution {public:vector<long long> distance(vector<int>& nums) {int n = nums.size();unordered_map<int, vector<int>> groups;for (int i = 0; i < n; ++i)groups[nums[i]].emplace_back(i);vector<long long> res(n);for(auto &[_,a] : groups){int m = a.size();long long lsum = 0,rsum = accumulate(a.begin(),a.end(),0LL);for(int i=0;i<m;i++){rsum -= a[i];res[a[i]] = (long long)a[i] * i - lsum + rsum - (long long)a[i] * (m - i - 1);lsum += a[i];}}return res;}};