滑动窗口阶段性总结
1.什么时候可能用到滑动窗口
像是找字串,找重复,找不重复,基本只要在一个串串中涉及到找这个动作就可以联想到滑动窗口了。
2.滑动注意事项
很多时候都只需要去设计右壁的移动,左壁只需要随着右臂挪就行了。
右臂的挪动可能会具象化为下标的增加,左壁则更多时候是ma.earse[],ma[]–之类的隐式移动。
3.可能要用到的容器
a.unordered_map<T,T>
基本添加某元素就对应value++就可以了,移除就value–就可以。用到比较多的就这个了。
b.set< T >
begin(),返回set容器的第一个元素
end(),返回set容器的最后一个元素
clear(),删除set容器中的所有的元素
size(),返回当前set容器中的元素个数
count() 判断某一键值是否在set出现过了
erase(key_value),删除键值key_value的值
find() ,返回给定值值得定位器,如果没找到则返回end()。
insert(key_value); 将key_value插入到set中
c.vector< T >
.push_back() 在尾端加入
4.怎么用
知道unordered_map 这是一个哈希表,存进去会有 word 和 value 的对应关系后,
用来放判断条件,放框等。
滑动窗口主要应用于字符串处理,如查找字串、检测重复和不重复元素。通常只需关注右边界移动,左边界随右边界更新。常用数据结构包括unordered_map用于计数,set用于有序存储,vector则用于动态数组操作。了解这些工具的特性对于有效使用滑动窗口算法至关重要。
3258

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



