摘要:
双指针算法及模板 1.第一类双指针算法 第一类双指针算法指的就是: 有两个序列A和B,同时有两个指针i和j。使得i指向其中一个序列,j指向另外一个序列。典型的应用就是在归并排序当中,将两个序列按照某一个规则进行排序时(从小到大或从大到小),使用的就是双指针算法。 2. 第二类双指针算法 第二类双指针 阅读全文
posted @ 2023-08-31 23:26
夏目^_^
阅读(137)
评论(0)
推荐(0)
摘要:
差分及模板 1.差分的定义及问题引出 给定一个数组:A = a1,a2,...,an 现在构造一个数组B = b1,b2,...,bn,使得: ai = b1+b2+...+bi 那么B就是A的差分。 根据前缀和的定义,我们发现:差分就是前缀和的逆运算。 根据上述定义,引出两个问题: 1. 如何构造 阅读全文
posted @ 2023-08-31 23:26
夏目^_^
阅读(111)
评论(0)
推荐(0)
摘要:
前缀和及模板 1. 一维前缀和数组定义及问题引出 假设我们拥有原数组:A = a1,a2,a3,...,an 那么,前缀和数组可以定义为:Si = a1+a2+...+ai(即:原数组中前i个数相加所构成的数组) 根据上述的定义,我们可以引出如下问题: 1. 如何求Si? 2. 前缀和数组的作用? 阅读全文
posted @ 2023-08-31 23:25
夏目^_^
阅读(119)
评论(0)
推荐(0)
摘要:
二分法及模板 1. 种类介绍 二分法按照适用的类型不同,可以分为:整数二分和浮点数二分。不同的类型,模板也各不相同。下面会分情况进行讨论。 2. 二分法的本质 二分法的本质并不在于单调性。如果某个问题具有单调性的性质,那么这个问题一定可以用二分法来解决。如果某个问题利用了二分法来解决,这个问题不一定 阅读全文
posted @ 2023-08-31 23:24
夏目^_^
阅读(146)
评论(0)
推荐(0)
摘要:
归并排序及模板 1.思想 归并排序也是基于分治法的思想。 1. 确定分界点(一般为中间点mid=(l+r)/2)使得整个数组被划分为left和right区间。 2. 递归排序left和right区间。 3. 归并-合二为一。进而将整个数组排序完成。(注意:在归并的时候,left和right区间都应该 阅读全文
posted @ 2023-08-31 23:22
夏目^_^
阅读(79)
评论(0)
推荐(0)
摘要:
快速排序及模板 1. 思想 快速排序是基于分治法的思想。首先给定一组数,使用快速排序对其进行排序的话,过程如下: 1. 确定分界点:q[l],q[(l+r)/2],q[r]或者随机都可以 2. 调整区间:如果我们以x为分界点的话,之后我们将区间分为两半。注意,这两半未必长度相等。使得左区间里面的数都 阅读全文
posted @ 2023-08-31 23:21
夏目^_^
阅读(91)
评论(0)
推荐(0)
摘要:
动态规划-区间DP 1. 区间DP的概念 区间DP,顾名思义就是在一个个的区间上进行DP。 2. 区间DP问题-石子合并 https://www.acwing.com/problem/content/284/ 我们还是从动态规划的两个角度来阐述该问题。 1. 状态表示 本问题,我们可以用二维状态来表 阅读全文
posted @ 2023-08-31 23:15
夏目^_^
阅读(48)
评论(0)
推荐(0)
摘要:
贪心算法-区间问题 1. 区间选点问题概述及示例 https://www.acwing.com/problem/content/907/ 上图为区间选点问题的示例。 如上图所示:黑色为数轴,蓝色为区间,红色为选择的点。若满足题目要求,最少应选两个点。 2. 区间选点问题步骤 1. 将每个区间按照右端 阅读全文
posted @ 2023-08-31 23:08
夏目^_^
阅读(308)
评论(0)
推荐(0)
摘要:
贪心算法-Huffman树 1. 哈并果子问题的概述及案例 https://www.acwing.com/problem/content/150/ 上图为本问题的案例。 实际上,本题就是霍夫曼树的应用。关于霍夫曼树的定义,这里就不再赘述。 根据上图,实际上这道题就是在询问:将所有的果子堆进行合并,构 阅读全文
posted @ 2023-08-31 22:53
夏目^_^
阅读(94)
评论(0)
推荐(0)

浙公网安备 33010602011771号