class Solution {
public:
int findShortestSubArray(vector<int>& nums) {
int maxlen = -1;
map<int, vector<int>> cnt;
for(int i=0;i<nums.size();i++){
if (cnt.find(nums[i])==cnt.end()){
vector<int> temp(1, i);
cnt[nums[i]] = temp;
}
else{
cnt[nums[i]].push_back(i);
}
int nowlen = cnt[nums[i]].size();
maxlen = maxlen > nowlen?maxlen : nowlen;
}
if (maxlen==1){
return 1;
}
// find the max len
int res = nums.size();
for(auto it=cnt.begin();it!=cnt.end();it++){
vector<int> indexes = it->second;
if (indexes.size()==maxlen){
res = min(res, indexes[indexes.size()-1]-indexes[0]+1);
}
}
return res;
}
};
697. Degree of an Array
最新推荐文章于 2024-05-31 17:17:25 发布