- 博客(669)
- 资源 (45)
- 问答 (13)
- 收藏
- 关注
原创 SpringBoot整合多数据源
我们在调用任何持久层的框架,都是基于JDBC进行操作的,只要集成了Spring框架就一定会注入配置的DataSource获取连接。既然是我们配置的,我们可以实现一个自定义的DataSource,然后动态提供数据源。说干就干那我们实现DataSource这个接口,实现方法即可,会返回一个Connection对象。我们在这个方法中根据业务需求动态提供不同数据源的Connection对象即可。实现逻辑如下:我们可以通过一个静态的标识去判断,比如如果是Write,那就返回,如果是Read,就返回。
2024-01-24 15:58:37 224
原创 JUC高并发容器-CopyOnWriteArrayList
JUC高并发容器是基于非阻塞算法(或者无锁编程算法)实现的容器类,无锁编程算法主要通过组合实现,通过CAS保障操作的原子性,通过volatile保障变量内存的可见性。开销较小:不需要在内核态和用户态之间切换进程。读写不互斥:只有写操作需要使用基于CAS机制的乐观锁,读读操作之间可以不用互斥。1.ListJUC包中的高并发List主要有,对应的基础容器为ArrayList。相当于线程安全的ArrayList,它实现了List接口。在读多写少的场景中,其性能远远高于ArrayList的同步包装容器。
2023-10-22 10:55:39 292
原创 CompletableFuture异步回调
在进行传统的RPC(远程调用)时,同步调用RPC是一段耗时的过程。该方法是对runAfterBoth()方法和thenCombine()方法的特点进行了折中,调用thenAcceptBoth()方法,第三个任务可以接收其合并过来的第一个任务、第二个任务的处理结果,但是第三个任务(合并任务)却不能返回结果。从方法的声明可以看出,thenRun()方法同thenApply()方法类似,不同的是前一个任务处理完成后,thenRun()并不会把计算的结果传给后一个任务,而且后一个任务也没有结果输出。
2023-10-04 20:44:17 1078
原创 浅谈泛型擦除
getFirst擦除类型后的返回类型是Object。在编码阶段使用泛型时加上的类型参数,会被编译器在编译阶段去掉,这个过程叫做泛型擦除。编写一个泛型方法调用时,如果擦出了返回类型,编译器会插入强制类型转换。注意,类型参数T已经被擦出了,只留下了限定类型Comparable。(erased),并替换为其限定类型(或者,对于无限定的变量则替换为。这个原始类型的名字就是去掉类型参数后的泛型类型名。无论何时定义一个泛型类型,都会自动提供一个相应的。不过擦除类型后,它们都会编程原始的Pair类型。
2023-10-04 00:20:09 390
原创 设计模式-观察者模式
观察者(Observer)模式指在被观察者的状态发生变化时,系统基于事件驱动理论将其状态通知到订阅模式的观察者对象中,以完成状态的修改和事件的传播。这种模式有时又叫做发布-订阅模式或者模型-视图模式。观察者模式是一种对象行为型模式,观察者和被观察者之间的关系属于抽象耦合关系,主要优点是在观察者与被观察者之间建立了一套事件出发机制,以降低二者之间的耦合度。抽象主题(Subject):持有订阅了该主题的观察者对象的集合,同时提供了增加、删除观察者对象的方法和主题状态发生变化后的通知方法。
2023-06-25 00:03:41 1185
原创 设计模式-适配器模式
我们常常在开发过程中遇到各个系统之间的对接问题,然而每个系统的数据模式或多或少存在区别,因此可能存在改变现有对象模型的情况,这将影响到系统的稳定。如果想在不改变原有代码结构(类的结构)的情况下完成友好对接,就需要用到适配器模式(Adapter Pattern)。适配器模式通过定一一个适配器类作为两个不兼容的接口之间的桥梁,将一个类的接口转换成用户期望的另一个接口,使得两个或多个原本不兼容的接口可以基于适配器类一起工作。
2023-06-24 23:57:08 1170
原创 设计模式-单例模式
单例模式是保证系统实例唯一性的重要手段。单例模式首先通过将类的实例化方法私有化来防止程序通过其他方式创建该类的实例,然后通过提供一个全局唯一获取该类实例的方法帮助用户获取类的实例,用户只需要也只能通过调用该方法获取类的实例。单例模式的设计保证了一个类在整个系统中同一时刻只有一个实例存在,主要被用于一个全局类的对象在多个地方被使用并且对象的状态是全局变化的场景下。
2023-06-24 22:26:01 1423
原创 设计模式-抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)在工厂模式尚添加了一个创建不同工厂的抽象接口(抽象类或接口实现),该接口可叫做超级工厂。在使用过程中,我们首先通过抽象接口创建不同的工厂对象,然后根据不同的工厂对象创建不同的对象。我们可以将工厂模式理解为针对一个产品维度进行分类,比如上述工厂模式下的苹果手机和华为手机;而抽象工厂模式针对的是多个产品维度的分类,比如苹果公司既制造苹果手机又制造苹果笔记本电脑,同样,华为公司既制造华为手机也制造华为笔记本电脑。
2023-06-24 19:20:12 1318
原创 设计模式-工厂模式
工厂模式(Factory Pattern)是最常见的设计模式,该模式属于创建型模式,它提供了一种简单、快速、高效且安全创建对象的方式。工厂模式在接口中定义了创建对象的方法,而将创建对象的具体过程在子类中实现,用户只需通过接口创建需要的对象即可,不用关注对象的具体创建过程。同时,不同的子类可可根据需求灵活实现创建对象的不同方法。通俗地讲,工厂模式的本质就是用工厂方法代替new操作创建一个实例化对象的方式,以提供一种可方便地创建有同种类型接口的产品的复杂对象的方式。
2023-06-24 19:18:09 1548
原创 RabbitMQ应用场景和集群搭建复习
虽然并行已经提高的处理时间,但是,前面说过,邮件和短信对我正常的使用网站没有任何影响,客户端没有必要等着其发送完成才显示注册成功,应该是写入数据库后就返回.由此可以看出,引入消息队列后,用户的响应时间就等于写入数据库的时间+写入消息队列的时间(可以忽略不计),引入消息队列后处理后,响应时间是串行的3倍,是并行的2倍。1.用户的请求,服务器收到之后,首先写入消息队列,加入消息队列长度超过最大值,则直接抛弃用户请求或跳转到错误页面.用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功。
2023-06-23 10:56:58 1231
原创 RabbitMQ基础与实操复习
MQ(Message Quene) : 翻译为消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为消息中间件通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
2023-06-23 10:36:38 1419
原创 迷宫-BFS
由于传送门的存在, 从 (1,1) 出发到终点 (2,2) 只需要一步;, 那么小明既可以花费1的步数向上下左右四个方向之一走一格 (不能越过边界), 也可以花费1的步数通过传送门走到格子去。迷宫中除了可以向上下左右四个方向移动一格以外, 还有m个双向传送门可以使用, 传送门可以连接两个任意格子。n个格子中均匀随机的 (当然运气好可以直接随机到终点), 他想知道从初始格子走到终点的最短步数的期望值是多少。以终点为起点跑遍整个地图,每次到一个新的位置时,此时到达的步数就是从终点到该点的最短步数(
2023-06-01 21:39:56 1126
原创 出差(Bellman-Ford算法)
从题意可知,这道题目考察的是最短路径的算法,碰到这种问题最容易想到的就是Floyd算法,三个for循环就写出来了,但是由于Floyd的时间复杂度是。由于存在隔离时间,所以我们每条边的权值需要有所调整,假设城市A到城市B有一条权值为w的双向边,那么我们从城市A到城市B的权值需要修改为。由于上级要求, 小明希望能够尽快赶到城市 N, 因此他求助于你, 希望你 能帮他规划一条路线, 能够在最短时间内到达城市。算法是对边进行枚举,所以我们只需要在初始化的时候设置好边的权值即可,另外不需要考虑起点和终点的隔离时间。
2023-05-31 22:55:25 1174
原创 第十届蓝桥杯研究生组国赛-大胖子走迷宫(BFS问题)
小明在时刻 0 出发,每单位时间可以向当前位置的上、下、左、右移动单 位 1 的距离,也可以停留在原地不动。小明走迷宫走得很辛苦,如果他在迷宫里面待的时间很长,则由于消耗了很多脂肪,他会在时刻。n个方阵组成的方阵,正常人每次占用方阵中1×1的区域,而小明要占用 5×5的区域。走迷宫是计划中的重要环节。:先将初始点放入队列,然后只要队列非空我们就让队头节点出队,判断是否已经到达了终点,如果是,输出花费的时间。小明是个大胖子,或者说是个大大胖子,如果说正常人占用1×1 的面积,小明要占用 5×5 的面积。
2023-05-08 21:43:55 1540 2
原创 路径之谜(DFS)-2016年蓝桥杯国赛
骑士从左上角起点出发,没走一步,往左边和上边对应位置射一箭,题目在方格的左边和上边给出了骑士从起点到终点射箭的数量,现在让我们求骑士行走的路线。但不必走完所有的方格。如果走到终点且箭靶上的箭还没有被拔完,那我们就要济宁回溯操作(标记当前点未访问,左边箭靶数量+1,上边箭靶数量+1)。数组中记录的是经过的每个方格的编号,最后将这些编号输出即为骑士从起点到终点走过的路径。如果该点是终点,且箭靶上箭的数量为0,则说明走过的路线就是骑士经过的路线,算法结束。个整数,空格分开,表示北边的箭靶上的数字(自西向东)
2023-05-05 21:01:11 1411
原创 十一届蓝桥杯研究生组国赛-循环小数(数论)
例如 0.3333⋯0.3333⋯ 等于 1331 ,0.1666⋯0.1666⋯ 等于 1661。其实纯循环小数和混合循环小数最后的推导结果是可以合并的,这里为了区分就不合并了,看起来思路还清晰一点。,循环体为142857,该循环体有6位,有。再计算出142857与999999的最大公约数位142857,则对分数。输出两个整数,用一个空格分隔,分别表示答案的分子和分母。此时p=1,q=6,循环体位142857。是一个小于 11 的循环小数,请计算与。相等的最简真分数是多少。此时,p=3,q=7。
2023-05-05 10:12:03 1028
原创 十三届蓝桥杯研究生组国赛-最大公约数(线段树+二分)
由于要求的是最少次数,所以在没有1的情况下,我们要使用最少的操作次数获得1,其实就是我们在数组中找到最短的子数组,使得它们的gcd结果为1,涉及到了查询区间gcd整个操作。我们首先应该考虑数组中是否存在1,如果数组中存在1,那直接让整个1和其他数字都进行gcd,假设1的个数为。因为如果存在一个数组的gcd为1,那么整个数组无论再加上任何正整数,gcd也永远是1,因为。,如果整个数组的gcd都不为1,那么任何子数组的gcd也不可能为1,此时无解。,对于数组中的每个数我们都可以固定为区间的左端点。
2023-04-29 17:27:15 1310
原创 线段树入门
基于arr数组构建线段树,我们根节点存储的是区间[0-5]的和,再往下面分叉,左边表示[0-2]的和,右边表示[3-5]的和,以此类推,最后所有的叶子节点就是数组中的所有数字。线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。我们判断要修改的点是位于线段树的左子树还是右子树,若是左子树,递归左子树,修改对应节点的值,若是右子树那就递归右子树,修改对应节点的值。:我们使用一个数组保存,先标记上各个节点的下标,根节点下标为0,根节点的左孩子下表为。
2023-04-29 00:06:24 1433
原创 十三届蓝桥杯研究生组国赛-斐波那契数组
这里我们还需要确定斐波那契梳理的初始值,因为题目中并没有说初始值就是1,这个我们可以通过遍历的方式求解,我们将初始值从1取到1000000,然后根据这个初始值生成斐波那契数列,, 你可以执行任意次修改, 每次修改将数组中的某 个位置的元素修改为一个大于 0 的整数。将原数组修改为 (1,1,2,3,5)(1,1,2,3,5), 最少修改三个元素变成了一个斐波那契数组。然后我们比较控制台输入的数组和我们生成的正确斐波那契数组匹配的个数,取匹配个数最大的那一个即可。会变成一个斐波那契数组。
2023-04-28 16:10:56 2008
原创 布隆过滤器
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。主要用于判断一个元素是否在一个集合中,0代表不存在某个数据,1代表存在某个数据。总结:一个元素一定不存在 或者 可能存在!存在一定的误判率{通过代码调节}
2023-04-19 23:31:37 1542
原创 CompletableFuture异步编排
Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行。在Java 8中, 新增加了一个包含50个方法左右的类:,提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,提供了函数式编程的能力,可以通过回调的方式处理计算结果,并且提供了转换和组合的方法。类实现了Future接口,所以你还是可以像以前一样通过get。
2023-04-19 22:56:15 1346 1
原创 分布式锁+AOP实现缓存
*** 元注解:简单理解就是修饰注解的注解* @Target:用于描述注解的使用范围,简单理解就是当前注解可以用在什么地方* @Retention:表示注解的生命周期* SOURCE:只存在类文件中,在class字节码不存在* CLASS:存在到字节码文件中* RUNTIME:运行时* @Inherited:表示被GmallCache修饰的类的子类会不会继承GmallCache* @Documented:表明这个注解应该被javadoc工具记录,因此可悲javadoc类的工具文档化。
2023-04-19 22:47:45 1674
原创 分布式锁-Redisson
如果负责储存这个分布式锁的Redisson节点宕机以后,而且这个锁正好处于锁住的状态时,这个锁会出现锁死的状态。为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Java API并不能提供分布式锁的能力。超过这个时间后锁便自动解开了。
2023-04-19 00:12:41 1895
原创 Bellman-Ford算法--解决负权边问题
前阵子备考蓝桥杯的时候碰到了这个算法,感觉还挺有意思的,实现起来也非常简单。贝尔曼-福特算法(Bellman-Ford)是由理查德·贝尔曼(Richard Bellman) 和 莱斯特·福特 创立的,求解单源最短路径问题的一种算法。有时候这种算法也被称为 Moore-Bellman-Ford 算法,因为 Edward F. Moore 也为这个算法的发展做出了贡献。它的原理是对图进行V-1次松弛操作,得到所有可能的最短路径。其优于迪科斯彻算法。
2023-04-14 23:00:27 1416 1
原创 RSA解密-第十届Java研究生组E题
互质(互质的意思是最大公约数是1),这里我用暴力遍历出p和q,由于是填空题,n的数字很大,这个遍历求p和q花费了几秒钟的时间。=212353,同时你截获了别人发送的密文 C=20190324,请问,原文是多少?),Java中的BigInteger类型提供了求乘法逆元的API,我们直接调用就行。然后根据p和q的值求e,这个直接调用惩罚逆元的API即可。现在C、e、n都是已知的,我们直接利用公式。求解出原文,但是想求出e就得先求出p和q。组成了私钥,n,d 组成了公钥。=3 时,n=55,e=27。
2023-04-01 21:23:13 1025
原创 蓝桥杯-修改数组(并查集)
然后执行5和(5+1=6)的合并就行,到这里已经结束了,就不再画出5和6的合并结果了。没输入一个数字,我们就去查找它的根节点,把他根节点的值当作这个位置的最终结果。如果新的A_i仍在之前出现过,小明会持续给 加。也经过上述修改之后,显然A数组中就没有重复的整数了。的时候,直接把2的根节点值3当作本次的最终结果。,然后执行3和(3+1=4)的合并,结果如下右图。为例,初始的时候,我们让每个节点都指向自己。这样做的目的是,在下一次还输入。,数组中有可能有重复出现的整数。数组保存每个节点的父节点,使用。
2023-03-31 21:55:16 910
原创 十三届蓝桥杯研究生组J题-推导部分和(带权并查集)
对于本题来说,我们需要将区间的左端点从0开始,在计算部分和的时候我们不包括左端点的值,如果求1到2位置上的部分和时,若并查集结构为(1->2),此时1到2之间就只能有一个权值,即只能指导1或者2位置上的值,所以并查集的结构应改为(0->1->2)。查找节点x的根节点的时候,压缩x节点到根节点的路径,这样我们下一次查找x的根节点时候,至于要一步操作就能;的部分和,现在要将节点1所在的连通图与节点3所在的连通图合并,现在给出。的边权值表示的是2位置上的值,此时求1到2位置上的部分和时,即。
2023-03-31 18:58:02 807
原创 蓝桥杯-全球变暖(BFS/DFS)
由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。还有,如果初始的时候,一个陆地的周围都是海洋,这个陆地也是可以构成岛屿的,这个很关键,刚开始不知道这个,走了很多弯路,不过这个条件感觉有点歧义。统计不会被淹没的岛屿个数,每次搜索的时候,判断上下左右是不是都是陆地,若是,则这个岛屿不会被淹没,最后我们用岛屿总数-不会被淹没的岛屿个数即可。这里注意一下,被海洋覆盖之后,不会被淹淹没的岛屿数量可能会增加。记录该岛屿是否会被淹没,如果不会被淹没,设置。最后会被淹没的岛屿数量。
2023-03-30 23:36:42 616
原创 蓝桥杯-卡片换位(BFS)
我们首先获取开始时候A、B和空格的位置,我们从空格所在的位置开始向四个方向扩展,这里由于给定了2行3列共6个位置,其实扩展的次数也不是特别多,不过每次扩展的时候都需要判断扩展节点是否越界。每扩展到一个位置,我们需要将当前的空格节点与扩展节点所在位置上的数据进行互换,然后我们标记当前的地图,这里我用一个Node类存储当前的地图:包括当前空格所在位置。这里我们将两行拼接在一起,当作一个字符串就行,至于怎样从现在的字符串还原出原来二维数组的坐标,那也很简单,假设当前的空格位置为。这是个类似的,但更简单的游戏。
2023-03-29 23:33:31 723
原创 蓝桥杯-密码脱落(动态规划问题)
原因估计是你从左边补上和从右边补上可能对后面的结果也是有影响的,现在暂时还不清楚,不想看这个那就直接用下面的动态规划做吧。题目中问的是脱落了几个种子,也就是说从原来的回文串到现在剩下的串是少了几个字符变过来的。我们只需要在现在的字符串中找到最长回文子串,剩下的字符个数就等于已经脱落的字符个数,那么我们怎么求当前字符串的最大回文子串呢?你的任务是:给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。快1点了,有点困了,上面的思路可能在细节方面有点欠缺,以后补上吧。
2023-03-29 00:49:27 859
原创 蓝桥杯-统计子矩阵(前缀和+双指针)
由于数组没有辅助,在R指针右移的过程中,L也一定会右移(否则求和会超出k的范围),这样我们将问题转化成了一个一维数组的子数组和。知道了上面这些基础知识,我们很容易的想到我们只需要枚举矩阵的左上角坐标和右下角的两个坐标就能计算出子矩阵的和了。上面的代码中前两重循环确定左上角坐标,后两重循环确定右下角坐标,然后用我们计算前缀和的公式去算就行。,如果求和结果大于K,那么L指针右移,统计当前R作为右边界的符合条件的数量为。看到这个矩阵求和的题目,我们要马上想到二维数组的前缀和。
2023-03-29 00:19:14 1299
原创 MinIO对象存储
MinIO是一个基于开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似NodeJSRedis或者MySQL。
2023-03-27 12:25:17 976
原创 蓝桥杯-本质上升序列(动态规划问题)
在一个字符串中,如果取出若干个字符,将这些字符按照在字符串中的顺序排列后是单调递增的,则成为这个字符串中的一个单调递增子序列。小蓝发现,有些子序列虽然位置不同,但是字符序列是一样的,例如取第二个字符和最后一个字符可以取到。对于一个字符串,小蓝想知道,本质不同的递增子序列有多少个?的递增序列是重复的,我们应当减去这一部分,下面会给个实例。,本质不同的递增子序列有 21 个。结尾的本质不同递增子序列的个数,我们考虑。本质不同的递增子序列有多少个?结尾的递增子序列个数,又因为。,这是倒序,不满足条件。
2023-03-23 17:28:35 643
原创 跳跃-动态规划问题
例如,如果当前小蓝在第 3 行第 5 列,他下一步可以走到第 3 行第 6 列、第 3 行第 7 列、第 3 行第 8 列、第 4 行第 5 列、第 4 行第 6 列、第 4 行第 7 列、第 5 行第 5 列、第 55 行第 6 列、第 6 行第 5 列之一。在图中,有的位置有奖励,走上去即可获得,有的位置有惩罚,走上去就要接受惩罚。那我们可以由此建立一个搜索的坐标数组,每次从当前位置搜的时候我们就扩展坐标即可。开始时,小蓝站在方格图的左上角,即第 11 行第 11 列。输出一个整数,表示最大权值和。
2023-03-21 23:03:17 592
原创 重新排序-研究生组G题
我们的目的是计算出每个位置上的查询次数,也就是被加的次数,最后我们尽可能让数值比较大的数字被查询的次数最多就能满足最后的和最大。贪心思想:我们的目的是查询之和最大,那么我们直接将原数组a和前缀和数组s都进行排序,然后对应位置相乘求和,这样就保证了较大的数字被查询的次数多一点,和也就最大了。题目想要重新排列之后的数组,使得每个查询结果尽可能大,最终的结果为重新排列之后的最大和减去重新排列之前的最大和。原来的和为6+14=20, 重新排列为(1,4,5,2,3) 后和为10+14=24, 增 加了4。
2023-03-21 18:02:09 319
原创 蓝桥杯-染色时间(优先级队列)
实现,我们依次将染色的点加入队列中,每次取出染色耗时最短的点,然后依次将其上下左右四个位置的节点入队,节点的值加上出队的这个节点的染色时间,之后将上下左右这。后面的节点入队和出队类似,这样我们使用优先级队列,每次耗时最短的节点先出队,最后出队的节点就是耗时最久的,他的时间就是最终的输出结果。给定每个方格的染色时间, 在时刻 0 触发第一行第一列的方格染色, 请问 多长时间后整个棋盘完成染色。所以,我们其实每次都取得是染色时间最小的,然后再更新它周围没有被染色的节点的染色时间。, 分别表示棋盘的行数和列数。
2023-03-19 12:17:32 430
原创 简单0-1背包问题求解
这里f(0,w)表示不拿物品,价值肯定为0,f(k,0)表示被包装量为0,肯定装不下,所以第一行和第一列都是0,这里算几个关键的。我们有4件物品,背包容量为8,我们的目标是求在背包容量为8的前提下能装物品的最大价值。小明想知道再购买的物品总体积不超过V的情况下所能获得的最大价值为多少,请你帮他算算。输入第1行包含两个正整数N,V,表示商场物品的数量和小明的背包容量。,因为没拿第4件,所以背包容量没变,也不用再加第4件物品的价值。为:当背包容量为w,现在有k件物品可以偷,所能偷到的最大价值。
2023-03-15 00:04:08 457
原创 Dijkstra-单源最短路径算法
Dijkstra算法用来计算一个点到其他所有点的最短路径的算法,是一种单源最短路径算法。也就是说,只能计算起点只有一个的情况。算法的时间复杂度是On3O(n^3)On3,它不能处理存在负边权的情况。算法描述:设起点为s,dis[v]表示从s到v的最短路径长度disv∞v≠s;i
2023-03-14 20:52:35 1322
原创 Floyd算法求解最短路径
Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德。核心思路:通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。算法过程:从任意一条单边路径开始。左右两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。对于每一对顶点u和v,看是否存在一个顶点w使得从u到w再到v比已知的路径更短,如果更短,则更新它。上述概念来源于百度百科。
2023-03-13 21:49:48 4465 2
ebusiness.zip
2021-04-28
pdman2.2.0.zip
2021-04-18
Postman-win64-8.1.0-Setup.exe
2021-04-08
otp_win64_23.2.6.exe
2021-04-08
rabbitmq-server-3.8.9.zip
2021-04-08
ActiveMQ.zip
2021-04-08
summernote.zip
2021-04-08
rest-client.zip
2021-03-31
echarts.zip
2021-03-31
bootstrap-fileinput文件上传插件.zip
2021-03-16
自编码器实战(基于FashionMNIST数据集)
2022-07-18
数码产品类电商小程序项目
2022-03-31
Mycat分库分表+springcloud微服务小案例源码.zip
2021-10-20
Mycat-server-1.6.7.3-release-20190927161129-linux.tar.gz
2021-10-04
sentinel dashboard.zip
2021-09-08
texstudio-3.1.2-win-qt5.zip
2021-08-21
前后端分离博客项目.zip
2021-08-11
前后端分离小项目(员工管理).zip
2021-08-04
谷歌浏览器(google).rar
2021-05-23
BANDIZIP-SETUP-STD-X64.EXE
2021-05-23
OfficeFileAPI.chm
2021-05-17
傲梅分区助手(磁盘分区、系统迁移等等).zip
2021-05-01
微服务整合SpringSecurity碰到的问题
2023-06-06
2006 - MySQL server has gone away
2021-10-18
config rewrite命令一直报没有权限,有人知道怎么解决吗?
2021-09-19
vue3在安装element-plus时报错。
2021-08-06
Mybatis-Plus官网怎么找不到AR相关的文档啊?
2021-06-22
c#未能加载文件或程序集“NPOI”或它的某一个依赖项
2021-05-16
Echarts的toolbox提示变成英文了,想改回中文
2021-05-10
jquery.validate清除表单上次验证结果失效
2021-04-19
Echarts中datazoom的问题
2021-04-17
Element dispatcher is not allowed here
2021-04-13
summernote富文本插件上传图片问题
2021-04-07
H+框架怎样用js关闭当前选项卡
2021-04-06
springmvc接收json数组报错
2021-04-03
bootstrap-table插件的打印问题
2021-03-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人