代码编织梦想

算法常见技巧 -爱代码爱编程

快速幂 题目 快速幂 典型题例: 给定 n 组 a

dfs - 常见算法题总结_想当开心果哦的博客-爱代码爱编程

DFS 深度优先搜索( Depth First Search): 一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回

bfs - 常见算法问题_想当开心果哦的博客-爱代码爱编程

BFS 广度优先搜索: 应用一:层序遍历 应用二:最短路径 题目 机器人的运动范围 典型题例: 地上有一个 m 行和 n 列的方格,横纵坐标范围分别是 0∼m−1 和 0∼n−1。 一个机器人从坐标 (0,

贪心算法 - 常见的问题总结(三)_想当开心果哦的博客-爱代码爱编程

什么是贪心 贪心:贪心在解决问题上是目光短浅的,仅仅根据当前的已知信息就做出选择,并且一旦做了选择,就不再更改 常见的贪心问题 区间问题Huffman树排序不等式绝对值不等式推公式 排序不等式 排队打水 典型题例

贪心算法 - 常见的问题总结(二)_想当开心果哦的博客-爱代码爱编程

什么是贪心 贪心:贪心在解决问题上是目光短浅的,仅仅根据当前的已知信息就做出选择,并且一旦做了选择,就不再更改 常见的贪心问题 区间问题Huffman树排序不等式绝对值不等式推公式 区间问题 区间覆盖 典型题例:

贪心算法 - 常见的问题总结(一)_想当开心果哦的博客-爱代码爱编程

什么是贪心 贪心:贪心在解决问题上是目光短浅的,仅仅根据当前的已知信息就做出选择,并且一旦做了选择,就不再更改 常见的贪心问题 区间问题Huffman树排序不等式绝对值不等式推公式 区间问题 区间选点 典型题例:

动态规划-线性dp问题总结(一)_想当开心果哦的博客-爱代码爱编程

什么是动态规划 动态规划通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,其实是某两三个集合之间的状态转移! 常见的线性DP问题 最

动态规划- 背包问题总结(一)_想当开心果哦的博客-爱代码爱编程

什么是动态规划 动态规划通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,其实是某两三个集合之间的状态转移! 常见的背包模型 01背

动态规划- 背包问题总结(二)_想当开心果哦的博客-爱代码爱编程

什么是动态规划 动态规划通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,其实是某两三个集合之间的状态转移! 常见的背包模型 01背

manacher算法_徐伯莱的博客-爱代码爱编程_manacher算法 oiwiki

时间复杂度 int init() { // $ 作为整个串的左边界 res[0] = '$'; // 把串的字符放在#之间,原因在于方便处理,无论是偶数或奇数回文串都会转化为奇数串 res[1] = '#'; int len = 2; for(int i = 0; i < s.length(); ++i) { res[len++

树的遍历_徐伯莱的博客-爱代码爱编程

已知后序与中序输出前序(先序) 后序:2  3  1  5  7  6  4(左右根) 中序:1  2  3  4  5  6  7(左根右) 分析:由于后续的最后一个节点总是根节点(root),从中序中找出根节点坐标i,i把中序分成左右子树。依次类推。。。 后序序列左子树root = root - 1 + i - r 后序序列右子

二分查找_徐伯莱的博客-爱代码爱编程

时间复杂度:。 在左闭右开 区间[l, r)内查找v. 否则返回-1  int bsearch(int *a, int l, int r, int v) { while(l < r) { int m = l + (r - l) / 2 //这种写法可以防止溢出 if(a[m] == v) return v; else

冒泡排序-爱代码爱编程

/*  * 冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 * 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 */ public class BubbleSort { public static void main(St