Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 3741. Minimum Distance Between Three Equal Elements II
題目:

解答:
class Solution {
public:
int minimumDistance(vector<int>& nums) {
unordered_map<int, vector<int>> mp;
for (int i = 0; i < nums.size(); ++i) {
mp[nums[i]].push_back(i);
}
int ans = INT_MAX;
for (auto& [val, pos] : mp) {
if (pos.size() < 3) {
continue;
}
for (int i = 0; i + 2 < pos.size(); ++i) {
ans = min(ans,
abs(pos[i + 0] - pos[i + 1]) +
abs(pos[i + 1] - pos[i + 2]) +
abs(pos[i + 2] - pos[i + 0])
);
}
}
return ans == INT_MAX ? -1 : ans;
}
};