We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 861819a commit c850817Copy full SHA for c850817
C++/intervals-between-identical-elements.cpp
@@ -0,0 +1,23 @@
1
+// Time: O(n)
2
+// Space: O(n)
3
+
4
+class Solution {
5
+public:
6
+ vector<long long> getDistances(vector<int>& arr) {
7
+ unordered_map<int, vector<long long>> lookup;
8
+ for (int i = 0; i < size(arr); ++i) {
9
+ lookup[arr[i]].emplace_back(i);
10
+ }
11
+ vector<long long> result(size(arr));
12
+ for (const auto& [_, idxs] : lookup) {
13
+ vector<long long> prefix(1);
14
+ for (const auto& i : idxs) {
15
+ prefix.emplace_back(prefix.back() + i);
16
17
+ for (int i = 0; i < size(idxs); ++i) {
18
+ result[idxs[i]] = (idxs[i] * (i + 1) - prefix[i + 1]) + ((prefix[size(idxs)] - prefix[i]) - idxs[i] * (size(idxs) - i));
19
20
21
+ return result;
22
23
+};
0 commit comments