𝓝𝓮𝓶𝓸&博客

随笔分类 -  理论知识 / 算法

摘要:据查,医书有服用响豆的方法,响豆就是槐树果实在夜里爆响的,这种豆一棵树上只有一个,辨认不出来。取这种豆的方法是,在槐树刚开花时,就用丝网罩在树上,以防鸟雀啄食。结果成熟后,缝制许多布囊贮存豆荚。夜里用来当枕头,没有听到声音,便扔掉。就这么轮着枕,肯定有一个囊里有爆响声。然后把这一囊的豆类又分成几个小 阅读全文
posted @ 2021-03-28 08:57 Nemo& 阅读(1397) 评论(0) 推荐(2)
摘要:滑动窗口介绍 对于大部分滑动窗口类型的题目,一般是考察字符串的匹配。比较标准的题目,会给出一个模式串B,以及一个目标串A。然后提出问题,找到A中符合对B一些限定规则的子串或者对A一些限定规则的结果,最终再将搜索出的子串完成题意中要求的组合或者其他。 比如:给定一个字符串 s 和一个非空字符串 p,找 阅读全文
posted @ 2021-03-27 21:00 Nemo& 阅读(5679) 评论(0) 推荐(1)
摘要:哈希表 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 给定表M,存在函数f(key),对任意给定的关键字值key 阅读全文
posted @ 2021-03-27 11:45 Nemo& 阅读(1088) 评论(0) 推荐(2)
摘要:对于仍然不太清楚位操作符的同学们,可以看看这篇文章:位操作符 特别注意 **特别注意:**使用按位操作符时要注意,相等(==)与不相等(!=)的优先级在按位运算符之上!!!! 这意味着,位运算符的优先级极小,所以使用位运算符时,最好加上括号() 重要技巧 位运算相关的知识。 &符号,x&y,会将两个 阅读全文
posted @ 2021-03-26 21:39 Nemo& 阅读(5004) 评论(0) 推荐(1)
摘要:分治法在每一层递归上都有三个步骤: 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题 合并:将各个子问题的解合并为原问题的解。 适用场景 适用于我们的问题是一个能被分解成多个小问题的大问题的时候 原问题 = 子 阅读全文
posted @ 2021-03-26 12:08 Nemo& 阅读(1633) 评论(0) 推荐(1)
摘要:前面我们介绍了一下回溯法的使用。 现在我们来给大家介绍一下它的好朋友——分支界限法。 如果说回溯法是使用深度优先遍历算法,那么分支界限法就是使用广度优先遍历算法。 深度优先遍历可以只使用一个属性来存放当前状态,但是广度优先遍历就不可以了,所以广度优先遍历的节点必须用来存储当前状态,一个节点代表一个当 阅读全文
posted @ 2021-02-24 20:40 Nemo& 阅读(5604) 评论(2) 推荐(1)
摘要:位运算符 **特别注意:**使用按位操作符时要注意,相等(==)与不相等(!=)的优先级在按位运算符之上!!!! 这意味着,位运算符的优先级极小,所以使用位运算符时,最好加上括号() java支持的位运算符有7个,分为两类:位逻辑运算和移位运算。位逻辑运算符包括按位取反(~)、按位与(&)、按位或( 阅读全文
posted @ 2021-02-08 21:20 Nemo& 阅读(4363) 评论(1) 推荐(2)
摘要:Math类 Math 类是数学操作类,提供了一系列的数学操作方法,包括求绝对值、三角函数等,在 Math 类中提供的一切方法都是静态方法(类方法),所以直接由类名称调用即可。 Math类的基本操作: |方法|返回类型|描述|备注| | | | | | |abs(int a)|int|取绝对值|ABS 阅读全文
posted @ 2020-03-19 22:27 Nemo& 阅读(516) 评论(0) 推荐(0)
摘要:字符的常用技巧 char c; 字母的顺序:c - 'A'、c - 'a' 字母大小写转换:c - 'a' + 'A'、c - 'A' + 'a' 数字字符转换为数字:c - '0' String、StringBuilder和StringBuffer 三者区别 StringBuilder和Strin 阅读全文
posted @ 2020-03-14 15:20 Nemo& 阅读(790) 评论(0) 推荐(0)
摘要:回溯法 回溯法:自顶向下、由大及小 动态规划:自底向上、由小及大 对于回溯法,网上有很多种解释,这里我依照自己的(死宅)观点做了以下三种通俗易懂的解释: **正经版解释:**其实人生就像一颗充满了分支的n叉树,你的每一个选择都会使你走向不同的路线,获得不同的结局。如果能重来,我要选李白~呸!说错了, 阅读全文
posted @ 2020-03-13 21:22 Nemo& 阅读(5504) 评论(0) 推荐(1)
摘要:动态规划 动态规划:自底向上、由小及大 回溯法:自顶向下、由大及小 例如:得到一个数字12345,动态规划会将 原问题12345 分割为 子类问题1234 + 当前问题5,思考新增的那个数字会对最优解造成怎样的影响,找初始值、找递推关系式、找最优解; 而回溯法则会从12345开始思考,一步一步向下遍 阅读全文
posted @ 2020-03-12 18:07 Nemo& 阅读(3410) 评论(0) 推荐(1)
摘要:类集框架(集合框架)是一个用来代表和操纵集合的统一架构。所有的类集框架都包含如下内容: 接口:是代表类集的抽象数据类型。之所以定义多个接口,是为了以不同的方式操作集合对象。 例如:Collection、List、Set、Map、Queue等。 实现(类):是类集接口的具体实现。从本质上讲,它们是可重 阅读全文
posted @ 2020-03-12 17:25 Nemo& 阅读(484) 评论(0) 推荐(0)
摘要:递归 递归实现的原理:对于递归的问题,我们一般都是从上往下递归的,直到递归到最底,再一层一层着把值返回。 一个递归函数的调用过程类似于多个函数的嵌套的调用,只不过调用函数和被调用函数是同一个函数。为了保证递归函数的正确执行,系统需设立一个工作栈。具体地说,递归调用的内部执行过程如下: 运动开始时,首 阅读全文
posted @ 2020-01-15 21:58 Nemo& 阅读(3486) 评论(0) 推荐(0)
摘要:基本概念 键树,又称数字查找树(Digital Search Tree)。 它是一棵度大于等于2的树,树中的每个结点中不是包含一个或几个关键字,而是只含有组成关键字的符号。 例如,若关键字是数值,则结点中只包含一个数位;若关键字是单词,则结点中只包含一个字母字符。 这种树会给某种类型关键字的表的查找 阅读全文
posted @ 2019-10-27 20:33 Nemo& 阅读(2321) 评论(0) 推荐(0)
摘要:矩阵在计算机图形学、工程计算中占有举足轻重的地位。在数据结构中考虑的是如何用最小的内存空间来存储同样的一组数据。所以,我们不研究矩阵及其运算等,而把精力放在如何将矩阵更有效地存储在内存中,并能方便地提取矩阵中的元素。 数组的存储结构 一个数组的所有元素在内存中占用一段连续的存储空间。 - 以行优先方 阅读全文
posted @ 2019-09-27 11:03 Nemo& 阅读(2597) 评论(0) 推荐(1)
摘要:引入头结点: 统一第一个元素结点与其他结点的操作; 统一空表和非空表的处理。 顺序表 数组有上界和下界,数组的元素在上下界内是连续的。 存储10,20,30,40,50的数组的示意图如下: 数组的特点是:数据是连续的;随机访问速度快。 数组中稍微复杂一点的是多维数组和动态数组。对于C语言而言,多维数 阅读全文
posted @ 2019-08-19 19:02 Nemo& 阅读(1064) 评论(0) 推荐(0)
摘要:注意事项 做算法题时,一定要注意对结尾边界数据操作的特殊性,一定要检查一下结尾边界数据是否能够覆盖到,并且满足题意。开头的数据是最容易注意到的,中间过程的数据是我们会专心花精力去做的,结尾的边界数据我们往往会忽略,所以请一定注意。 有时候,我们需要对前后两个元素进行判断操作,我们可以不用从第一个元素 阅读全文
posted @ 2019-08-14 13:12 Nemo& 阅读(343) 评论(0) 推荐(0)
摘要:栈和队列 我们以下的使用的栈或队列都是作为一个工具来解决其他问题的,我们可以把栈或队列的声明和操作写的很简单,而不必分函数写出。 栈:Stack 队列:Queue 栈和队列:Deque(double ended queue, 双端队列)(万能) 在Java Doc里建议使用Deque接口替代Stac 阅读全文
posted @ 2019-08-05 22:34 Nemo& 阅读(1042) 评论(0) 推荐(0)
摘要:线性表可以是空表,树可以是空树,但图G(Graph)不可以是空图。就是说,图中不能一个顶点也没有,图的顶点集V(Vertex)一定非空,但边集E(Edge)可以为空,此时图中只有顶点而没有边。 若一个图有n个顶点,并且边数小于n-1,则此图一定是非连通图。 若一个图有n个顶点,并且有大于n-1条边, 阅读全文
posted @ 2019-07-31 13:20 Nemo& 阅读(2394) 评论(0) 推荐(2)
摘要:(ElemType*)malloc(sizeof(ElemType)*InitSize); 此函数是一个指针型函数,返回的指针指向该分配域的开头位置。 树 树的性质 树中的结点数 = 所有结点的度数 + 1 度为m的树中第i层上至多有**$m^{i-1}$**个结点(i>=1) 高度为h的m叉树至多 阅读全文
posted @ 2019-07-24 22:59 Nemo& 阅读(1485) 评论(0) 推荐(0)