树
树(Tree) 是一个一个一个无环图罢了(悲~ 树的遍历 树的遍历可以参考图的遍历,其他稍微有点特殊的另外给出: DFS(先序,中序,后序) 先序(pre-order)144. Binary Tree Preorder Traversal func preOrder(node *TreeNode) { if node != nil ...
树(Tree) 是一个一个一个无环图罢了(悲~ 树的遍历 树的遍历可以参考图的遍历,其他稍微有点特殊的另外给出: DFS(先序,中序,后序) 先序(pre-order)144. Binary Tree Preorder Traversal func preOrder(node *TreeNode) { if node != nil ...
树状数组 https://oi-wiki.org/ds/fenwick 普通树状数组维护的信息及运算要满足结合律且可差分,如加法(和)、乘法(积)、异或等。 结合律:$(x \circ y) \circ z = x \circ (y \circ z)$,其中$\circ$是一个二元运算符。 可差分:具有逆运算的运算,即已知$x \circ y$和$x$可以求出$y$。...
栈(Stack) 常规栈:就是简单的栈操作,一般直接 pop 和 push 操作就行了。(例题:ID-1 ID-2 ID-3 ID-4) 单调栈:栈中的元素按照一定的规则呈递增或者递减顺序排列,当出现失序时出栈。(例题:ID-5 ID-6 ID-7 ID-8 ) 栈的例题 ID LeetCode 题号...
排序(Sort) 归并排序(Merge Sort) 稳定的排序方法,时间复杂度最优、最坏和平均都是 $O(n\,log\,n)$ ,时间复杂度为 $O(n)$ ; 归并排序可以只使用 $O(1)$ 的辅助空间。 // [l,r) func merge(l, r int) { if r-l <= 1 { return } mi...
队列(Queue) 介绍 队列(queue)是一种具有「先进入队列的元素一定先出队列」性质的表。由于该性质,队列通常也被称为先进先出(first in first out)表,简称 FIFO 表。 实现: 数组模拟队列: q := []int{} ... // Push q =...