
ACwing听课笔记
文章平均质量分 78
Warddamn
这个作者很懒,什么都没留下…
展开
-
ACwing:算法基础课 第二章Trie树,并查集,堆听课笔记
一。Trie 树 **1.基本作用:**高效地存储和查找字符串集合的数据结构。用Trie树存储字符串的时候,字符串一般都是全小写或者是全大写并且字母的个数不会很多即限制只有26个或52个。 例如: 构造的Trie树如下: 注意,在每一个单词的最后一个字母后面打一个标记星号,说明到此为一个单词的结束。即要把每一个单词的最后一个字母打标记 2.代码如下: #include<iostream> using namespace std; const int N=100010; //son表示N个节点原创 2021-10-30 17:04:31 · 280 阅读 · 0 评论 -
ACwing:算法基础课 第二章单链表,双链表,队列,栈以及KMP听课笔记
前言 本次课程的前半部分讲链表和栈队列的时候都有多种的实现方式,比如可以通过用指针和结构体的方式去实现链表,也可以通过STL库直接实现栈和队列。但是本次课程主要就是讲用数组进行模拟,原因如下: 效率问题。通过数组模拟的效率比较高,如果利用结构体和指针实现链表的话,每次存进去的时候都要new一个结点,但是这个效率非常慢。一般都是有十万级别的,所以用动态链表去实现的时候,太耗时间了,全部都花在新建结点上面了。 如上图所示的这个动态存储的方式一般不用。但是如果进行优化一下还是可以用这个来实现的,优化的方式就是直原创 2021-10-18 22:31:30 · 482 阅读 · 0 评论 -
ACwing:算法基础课 第一章双指针算法,位运算,离散化,区间合并听课笔记
一。双指针算法 1。双指针的两种情况 1⃣️情况一:两个指针分别指向两个序列,如归并排序 2⃣️情况二;两个指针指向一个序列,如快排 2。双指针算法的通用模版 for(int i=0,j=o;i<n;i++) { while(j<i&&check(i,j) { j++; //每道题的具体逻辑 } } 3。核心实现:优化到O(N) 4。具体例子 1⃣️例子一: ...原创 2021-09-14 16:56:15 · 259 阅读 · 0 评论 -
ACwing:算法基础课 第一章高精度,前缀和,差分听课笔记
一。 高进度 1⃣️大整数加大整数 1。位数:位数是1E6 2。存储:用数组存大整数的的每一位,然后数组的第一个位置存大整数的个位 3。运算:模拟脱式计算过程,注意是除以模的余数 4。注意输入输出的处理,用Vector来存更好。因为可以自己延长,学会auto变量 5。循环选择两个整数位数更长的那个作为结束条件 2⃣️大整数减大整数 1。存储:仍然是用数组 2。减数:减法的时候都是大减去小,如果是减去大的话,就return回这两个数的位置掉转过来的函数,然后再加个负号就行。因此在进行减法的运算的时候,要先判原创 2021-09-14 09:57:51 · 336 阅读 · 0 评论 -
ACwing:算法基础课 第一章快排,归并,二分听课笔记
第一章视频笔记 1⃣️视频看算法模版 2⃣️课下要背算法的模版,理解的去背 3⃣️课下要做模版题 一个题目要做个两三遍,做到能一次一分钟的把模版打出来 一。快速排序 1.采用分治的思想 1⃣️确定分界点 2⃣️调整区间 3⃣️递归处理左右两端 2.对于第二步调整区间 1⃣️方法一:暴力法 另外开两个数组,全部搜一遍数组 把在区间分界点两部分的数组分别放入到另开的两个数组里面,然后再依次放回到原数组中 2⃣️方法二:交换法 (优美指针) 就是在首尾用两个指针指示,然后当不满足要求时就交换,并且这种边界容易出现原创 2021-09-09 15:16:52 · 210 阅读 · 0 评论