随笔分类 - 算法
摘要:import java.util.*; public class Main{ public static void main(String[] Args){ Scanner scanner = new Scanner(System.in); String str1 = scanner.nextLine(); String str2...
阅读全文
摘要:解法一:通过排序,使其转化为lcs问题 解法二: 另一种方式是直接用DP求解,算法如下:时间复杂度为O(N^2) ①最优子问题 设lis[i] 表示索引为 [0...i] 上的数组上的 最长递增子序列。初始时,lis[i]=1,注意,在DP中,初始值是很重要的,它是整个算法运行正确的关键。而初始值
阅读全文
摘要:对于堆,其是一个完全二叉树的结构。如果是数组存储的话(索引值重0开始),其父节点的索引值为(i-1)/2,左孩子结点的索引为2*i+1,右孩子结点索引为2*i+2。 对堆的调整 建堆 堆排
阅读全文
摘要:基本思想:用标准的二叉树和一些额外信息来表示2-3树。 红链接将2-结点连接起来构成一个3-结点,黑链接则是2-3树中普通链接。 红黑树的自身特性: 1、结点的颜色一定是红色或黑色 2、树根的颜色为黑色 3、叶子结点为黑色(叶子结点为外部结点,是空结点) 4、某红结点,其左右孩子结点一定为黑结点 5
阅读全文
摘要:算法的设计 关键在于记住其思想、步骤和使用条件 1、什么是分治法 当求解的问题较复杂或规模较大时,不能立刻得到原问题的解,但这些问题本身具有这样的特点,它可以分解为若干个与原问题性质相类似的子问题, 而这些子问题较简单可方便得到它们的解,因此通过合并这些子问题的解就可得到原问题的解。 2、应用分治法
阅读全文
摘要:递归的基本原理: 1 每一次函数调用都会有一次返回.当程序流执行到某一级递归的结尾处时,它会转移到前一级递归继续执行. 2 递归函数中,位于递归调用前的语句和各级被调函数具有相同的顺序.如打印语句 #1 位于递归调用语句前,它按照递 归调用的顺序被执行了 4 次. 3 每一级的函数调用都有自己的私有
阅读全文

浙公网安备 33010602011771号