滑动窗口的阶段性总结

滑动窗口主要应用于字符串处理,如查找字串、检测重复和不重复元素。通常只需关注右边界移动,左边界随右边界更新。常用数据结构包括unordered_map用于计数,set用于有序存储,vector则用于动态数组操作。了解这些工具的特性对于有效使用滑动窗口算法至关重要。

滑动窗口阶段性总结

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 的对应关系后,
用来放判断条件,放框等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值