class Solution {
public:
int findShortestSubArray(vector<int>& nums) {
map<int,pair<int,int>> mp;
int mx = 0;
int ans = 0;
for(int i=0;i<nums.size();i++){
if(mp[nums[i]].first == 0) mp[nums[i]].second = i;
int F = ++mp[nums[i]].first;
int S = mp[nums[i]].second;
if(F > mx){
mx = F;
ans = i - S + 1;
}else if(F == mx){
ans = min(ans,i-S+1);
}
}
return ans;
}
};
No.150 - LeetCode697
最新推荐文章于 2021-09-16 15:18:24 发布
本文介绍了一种使用C++实现的算法,旨在找到具有最高频率元素的最短子数组。通过遍历输入数组并利用映射来跟踪每个元素的出现次数及首次出现位置,该算法能有效地确定目标子数组的长度。
193

被折叠的 条评论
为什么被折叠?



