前置节点
STL
双指针
光标移动
给一个序列,有五种操作:
1、在光标后面插入一个数字,并将光标向后移动一位
2、删除光标前一个数字
3、将光标左移一位
4、将光标右移一位
5、查询前
用两个栈来模拟整个序列,以光标位置为分界点,两个栈的栈顶都靠近光标位置,左侧成为
左移、右移就是将两个栈的栈顶元素弹出并插入对方栈顶。
插入数字:向
删除数字:弹出
前缀和最大值在向
不删除双指针
双指针问题:
给定一个长度为
答:双指针。
如果我们枚举
每次在答案中新增
假设新增一个数的时间复杂度是
当
比如,求区间最小值、最大公约数等情况。
我们以
给定一个长度为
设置一个
维护两个栈
当
当
当查询
而当栈
因为
因为每个元素只进入栈