二叉树 二叉树结构如下 struct TreeNode { int val; TreeNode *l …
Merge Sort – 归并排序详解与优化
归并排序 思想 自顶向下划分 序列 [l, r] 被逐步二分为更小的序列 [l, m] 、[m+1, r] 自 …
高效解决图连通性 – 并查集 Union Find
并查集的用处 – 分组和查询分组 并查集可以快速地分组和查询分组,时间复杂度近似常数,通常用于解决 …
求解问题最优方案 – 动态规划基础
动态规划 回溯穷举所有分支,主要用于罗列出所有满足条件的具体方案;而动态规划是在回溯的基础上,每一阶段的决策中 …
回归正确位置 – 十大排序
排序 排序通过 比较 和 交换 将元素回归正确位置 不同的排序思想有各自的特点和更适宜的场景 可利用排序后的序 …
[算法] 字符串 – 初步与优化
连续子串去重 保留连续重复子串中首个子串,其余去重,输入输出均为数组 ① 串右移并与自身逐位比较,逐次删除一位 …
常数级查找算法 – 哈希散列
哈希函数用查询键值K直接计算为一个数组下标索引,即index = hash(Key)形成了一对一的映射关系,将 …
[算法]数组类 – 初步及优化
> 数组类问题一般可优化为O(n)复杂度的问题 > 常用技术 – 快慢指针滑动 – 首尾指针对撞 …
递推关系得到问题解 – 递归详解
递归通常用于问题递推得解,因其 基于用户栈实现,也常用来控制执行顺序。由于虚拟地址空间的内存限制,过多的调用栈 …
盲目搜索 – DFS思想及应用
DFS理解 DFS将问题抽象为状态与相邻状态之间的关系 利用系统栈完成递归调用 调用展开结构是相邻节点数量为n …