滑动窗口的阶段性总结

滑动窗口阶段性总结

1.什么时候可能用到滑动窗口

像是找字串,找重复,找不重复,基本只要在一个串串中涉及到找这个动作就可以联想到滑动窗口了。

2.滑动注意事项

很多时候都只需要去设计右壁的移动,左壁只需要随着右臂挪就行了。
右臂的挪动可能会具象化为下标的增加,左壁则更多时候是ma.earse[],ma[]–之类的隐式移动。

3.可能要用到的容器

a.unordered_map
基本添加某元素就对应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 的对应关系后,
用来放判断条件,放框等。

你可能感兴趣的:(c++,算法)