哈希表的应用

发布时间 2024-01-11 16:36:35作者: 云撤~


也是滑动窗口的应用,但用到了哈希表。
哈希表一个索引,一个真值。索引可以是任何符号,因此可以表示一个事物的数量关系和对应关系.删除某个索引及真值时,要用迭代器,erase(it)。
find是查找索引返回迭代器。

点击查看代码
class Solution {
public:
    int totalFruit(vector<int>& fruits) {
int n=fruits.size();
unordered_map<int,int>cnt;
int result=0;
int left=0;
for(int right=0;right<n;++right){
    ++cnt[fruits[right]];
    while(cnt.size()>2){
        auto it=cnt.find(fruits[left]);
        --it->second;
        if(it->second==0){cnt.erase(it);}
         ++left;
    }
   
    result=max(result,right-left+1);
}
return result;
    }
};