1. 线段树
- 区间查询
- 线段树修改–懒标记
不用的时候懒标记到包含区间就不再往下了,用的时候(修改或查询)把懒标记下沉,去更新子节点
3。 更新到叶子节点就是O(n)级别的了
oj-223.线段树模板2
2. 单调栈
leetcode - 84. 柱状图中最大的矩形
- 单调栈适合解决的问题:向前或者向后找第一个大于或小于某元素的元素
- 每次遇到影响单调栈的元素就将栈顶元素弹出,计算一波
- 本题向前找第一个小于某元素的元素
leetcode - 42
~
3. 单调队列
oj-271.滑动窗口
4. 动态规划 dp
leetcode - 322. 零钱兑换
-
递归
-
递推
类比于爬楼梯问题
leetcode - 198. 打家劫舍
leetcode - 300. 最长递增子序列(经典题目)
- o(nlog(n))
- 碰到小的元素就找之前比它大的第一元素替换掉,碰到大的元素直接放在ans后面,理解就是不断增加ans长度的可能性