- 博客(46)
- 收藏
- 关注
原创 有向图的拓扑排序
若排序后满足,图中的任意一条有向边(u, v),u的位置都在v的前面,则称为拓扑排序该图的拓扑排序为A B C D,AC 边A在C的前面,BC边BZ在C的前面.......所有边都满足定义。
2024-11-28 18:48:38
847
原创 染色法判定二分图
若将图的节点可以分为两个集合 u 和 v ,所有节点都只和另一个集合的节点连通,不和所在节点存在边,那么该图被称为是一个二分图下面的则不是一个二分图。
2024-10-16 12:49:41
627
原创 kmp算法
假设有两个字符串S和P我们需要从字符串S中找到字符串P,并给出具体下标首先定义两个下标变量 i、 j先模拟一下kmp的核心之处下标 i 指向 a 开始进行匹配直到指向 c 的时候,这时候发现 值不一样了,需要重新进行匹配,但是实际情况是,下标 j 不需要退那么多,下标 j 只需要退到 第一个b字母处(j+1为第二个a字母处)原因是kmp算法当中,会有一个ne数组,用于记录匹配不成功后,下标 j 退的最少的坐标ne数组的长度和 被找的字符串的长度一样比如刚才的 a b a b e。
2024-09-08 16:50:51
694
原创 二叉树的相关选择题和基本方法(持续更新)
如果一棵树从1开始按下图一层一层的顺序编号,如果在到最后一个节点前没有出现空节点,那么则这棵树是完全二叉树在此图中,如果10之前只要存在一个节点不存在,则就不是完全二叉树。
2024-09-08 16:49:37
684
原创 并查集基础与简单扩展应用
并查集的结构是一棵树并查集有两种功能,一种是判断两个元素是否在同一集合,第二种是合并两个集合并查集的实现需要记录每个节点的父亲节点判断两个元素是否在同一集合,即判断两个元素的祖宗节点是否是一个节点(祖宗代表整棵树的根节点)合并两个集合,即将任意一个集合祖宗的爸爸改为另一个集合的祖宗。
2024-09-07 17:31:09
922
原创 设计表时的三大范式(MySQL)
在表的设计中,范式是一种设计规范,用于更好的组织和管理数据。设计数据表时的范式有第一范式1NF、第二范式2NF、第三范式3NF等等,一般满足三大范式即可。
2024-09-07 17:29:42
715
原创 二叉树的所有相关oj题目 — java实现(持续更新)
最后这里也可以做个小优化,就是如果 这个树的左子树和右子树都是空树的话就可以直接 root,这样就不会进行 null 和 null 的无效交换。,因为静态变量只要类被加载了,那么就会一直存在,所以第二个测试用例对象及以后的 preIndex的值 不等于0。三个点代表可能存在某棵树,假设p 和 q 分别为所求公共祖先的两个节点,root为树的根节点。当一棵树的与另一棵树相等或与其左子树或右子树相等时,就可以说,这棵树是另一颗树的子树。这个时候需要判断两树的根的值是否相等,如果不等,那么就直接说明两树不相等。
2024-08-31 17:01:01
815
原创 栈(数组模拟)
其只有一端可以进行访问,我们把可以访问的那端成为栈顶。tt为栈顶元素的坐标,当 tt 为 0 时栈为空。操作的查询结果为一个整数,表示栈顶元素的值。操作都要输出一个查询结果,每个结果占一行。N 为栈可能需要的最大空间,一般由题目而定。行,每行包含一个操作命令,操作命令为。栈是一种数据结构,其存储数据的特点是。个操作,其中的每个操作。删除栈顶元素,也叫做出栈。栈共有四种常用的操作。插入一个数据,称为入栈。都要输出相应的结果。
2024-07-13 15:08:50
615
原创 ArrayList模拟实现
ArrayList也叫做顺序表,底层是一个数组。在创建顺序表 时就应该规定 里面元素的数据类型,其中不能直接传基本数据类型,例如int、char。需要传他们的包装类。
2024-07-13 15:05:42
474
原创 面向对象三大特性之一:多态—java语言
多态的定义:是指同一行为,具有多个不同表现形式。有继承或实现关系(接口那里会讲到实现)需要重写父类的方法(不重写会没有意义)需要用父类的引用接收 子类的对象。(格式体现)
2024-06-11 08:00:00
857
3
原创 面向对象三大特性之一:继承—java语言
根据之前的就近原则,在找 num 的时候是一层一层往上找,如果子类没有则在父类当中找,如果还没有,则在父类的父类当中继续找,如果一直找不到,那么就会编译错误,这是对于成员变量来说是这么找的。综上所述,其实能不能继承下来,取决于 父类的成员变量和方法是用什么权限修饰符修饰的,如果使用 public 修饰,肯定是能够继承下来的,除了 父类的构造方法,这个继承不了。此时我们如果创建一个Dog对象,再调用 eat方法,调用的就会是子类的eat方法了,而不是父类的eat方法,是吃狗粮而不是吃东西。
2024-06-08 19:56:23
982
原创 高精度加法
而由于引用是 别名,也就是操作的是原vector容器,所以就不会浪费额外的空间,当然算法题其实也没那么需要注意空间,只需要小于题目要求即可,但是还是引用好一点。在计算机中,高精度的意思是指 一个数特别特别大,最大可以有 10的5次方 个 位数 ,注意是有这么多位数,而不是 10的五次方 大。在刚才的思路中,我们模拟了人类加法的过程,由于在加法的过程中 会有进位,所以需要创建一个变量来存储进制。这里的 t 的含义是 是上一位所进的位,由于个位 是最低位,所以刚开始的进位为0。
2024-06-07 08:00:00
1079
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人