脚本宝典收集整理的这篇文章主要介绍了leetcode 2121. 相同元素的间隔之和,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1 class Solution { 2 public: 3 vector<long long> getDistances(vector<int>& arr) { 4 unordered_map<int,vector<int>>mp; 5 int n=arr.size(); 6 vector<long long>ans(n); 7 unordered_map<int,long long>presum,suffsum; 8 unordered_map<int,int>precnt,suffcnt; 9 for(int i=0;i<n;i++) 10 { 11 presum[arr[i]]+=i; 12 precnt[arr[i]]++; 13 long long tmp=presum[arr[i]]; 14 ans[i]+=1ll*(i)*(precnt[arr[i]] )-tmp; 15 } 16 for(int i=n-1;i>=0;i--) 17 { 18 suffsum[arr[i]]+=i; 19 suffcnt[arr[i]]++; 20 long long tmp=suffsum[arr[i]]; 21 ans[i]+=tmp-1ll*(suffcnt[arr[i]])*i; 22 23 } 24 return ans; 25 26 /* 27 x1...xj...xn; 28 xj-x1+... +xj+1-xj+... xn-xj 29 */ 30 } 31 };
以上是脚本宝典为你收集整理的leetcode 2121. 相同元素的间隔之和全部内容,希望文章能够帮你解决leetcode 2121. 相同元素的间隔之和所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。