2671. 频率跟踪器
思路:用哈希表记录每个数的频数,再用数组sta,记录每个频数出现的次数,后面就是模拟操作就行
class FrequencyTracker {
public:
unordered_map<int,int> mp;
int sta[100010];
FrequencyTracker() {
memset(sta,0,sizeof sta);
}
void add(int number) {
if(mp.count(number)) sta[mp[number]]--;
mp[number]++;
sta[mp[number]]++;
}
void deleteOne(int number) {
if(mp.count(number)){
sta[mp[number]]--;
mp[number]--;
if(mp[number]==0) mp.erase(number);
else sta[mp[number]]++;
}
}
bool hasFrequency(int frequency) {
cout<<sta[frequency]<<endl;
return sta[frequency]>0;
}
};
/**
* Your FrequencyTracker object will be instantiated and called as such:
* FrequencyTracker* obj = new FrequencyTracker();
* obj->add(number);
* obj->deleteOne(number);
* bool param_3 = obj->hasFrequency(frequency);
*/