- 博客(52)
- 收藏
- 关注
原创 基于二叉堆优化的迪杰斯特拉算法
迪杰斯特拉算法在求解有权图的单源最短路径上表现优秀,如果图的规模比较小,采用原始算法即可应对,如果图的节点数V比较多并且图中的边数远小于V^2,那么可以使用二叉堆优化的迪杰斯特拉算法可以有效降低时空复杂度。最后,小伙伴们如果有什么想法欢迎评论区交流:)
2024-08-23 14:15:47
1001
原创 双向通信之Websocket
在这里我们探讨了websocket的工作原理以及它在我们项目中的具体应用。除了消息回复的实时通知,它的应用也是非常广泛,比如说实时更新(股票行情,游戏数据更新),在线协作等等。相较于HTTP协议,websocket的通信模式是双向通信模式,而HTTP是请求响应模式,并且HTTP每次请求都会带上大量的请求头,websocket在建立连接之后只传输很少的头部信息。所以在不同的场景下我们考虑使用不同的协议,简单场景下HTTP已经足够,如果是双方消息通知或者实时推送的话可以考虑websocket协议。
2024-08-18 13:47:35
1015
原创 多线程顺序执行
这几种方案都可以来实现线程的顺序执行,但是它们也有一些区别。sync的方法实现起来比较简单,但是需要手动等待和通知容易造成死锁;而lock-condition的方式提供了更为灵活的等待通知机制,并且可以提供多个condition,所以灵活性很高,但是需要对lock-condition的使用很熟徐;join方法使用也非常简单,只能实现一些简单场景的线程顺序执行;最后是CountDownLatch,它比较适合更为复杂的线程协作场景。
2024-07-21 15:17:43
316
原创 敏感词匹配DFA算法
DFA算法在敏感词检测场景有着比较好的展现效果,其核心思想在于对给定敏感词构建确定性有穷自动机,这边以Map集合的形式构建了一个类似于树型结构的DFA,包括初态中间态以及终态,根据是否出现满足状态转移的条件来推进下一个状态,到达终态判定为敏感词。在我们的刷题网站中的社区模块里,用户发布动态内容和评论回复的敏感词检测就使用到了DFA算法。上面给出了我们实现的DFA算法的核心功能。
2024-07-06 23:11:48
923
1
原创 矩阵求前k大数
求数组或者矩阵中的前k大元素的题目在面试中经常出现,它们的变体有很多种,本文所涉及到只是其中的一种形式。求第k大数经典排序算法研究。本题整体来讲做出来并不难,如果要想到更优的做法,对堆的思想比较熟悉的话,会比较容易。当然本人相信本题的更优做法不止于此,如果有小伙伴有更好的做法,欢迎大家讨论。
2024-05-26 15:34:52
1009
原创 求第k大数经典排序算法研究
本文针对频繁出现的手撕题:求第k大的数从三个简便算法作了求解,并分析了它们的时间复杂度,对于堆排序和优先级队列的时间复杂度我们还做了进一步的分析,结合理论和图像加深我们对二者复杂度比较的理解。本文我们不仅关注做出此题,还关注了算法的时间复杂度,额外还从导数的角度和图像的角度出发关注了时间复杂度之间的对比,从全方位理解一个算法。最后,大伙如果有什么想法,欢迎评论区留言!!!
2024-04-29 22:15:16
796
1
原创 服务器挖矿病毒解决
通过这次的服务器入侵让我联想到,在linux的数据库中存数据的时候,有些数据尽量进行加密,比如我们这个项目有用户信息存储在user表中,有他们的用户密码,一定要加密存储,就算数据会丢失,恶意用户也不知道密码是什么,也登不上去。还有上传到github上的公开代码中的配置文件中,如果有数据库的连接密码,最好也是要加密,以确保数据安全性。上面是这次服务器被拿来挖矿事件所联想到事情,上述只是一种解决挖矿病毒的参考方法,小伙伴们有什么新的想法,欢迎大家评论区留言!!!
2024-04-10 23:00:39
612
原创 前后端项目部署到云服务器总结
由于之前做的更多的是后端,如果有前端也是在本地上运行,这次正好需要上线部署到云服务器就部署了一下,关于nginx配置这块还是要非常细心的,不同的项目架构对应着不同的配置,如果是只有一个服务那location自然也不会出问题,但是现在的开发项目基本山是微服务形式的,而且所有的请求都会经过gateway,而有时候gateway可能不会去配置前缀路径,所以这时候需要将所有的微服务前缀路径写出然后映射到gateway的地址,这也算是一个小点吧,不注意的话请求不能正确到达对应的微服务。
2024-04-08 22:05:58
1150
原创 Jenkins的构建部署之可能的报错解决办法
虽然在使用jenkins对项目进行构建部署的过程并不是很顺利,但是经过排查与纠错最终成功对项目进行了构建部署与自启动,以上是我在使用jenkins的过程中遇到的问题与解决方案,文中出现的所有问题都已经解决。总的来说,jenkins这样一个基于java的开源集成项目,还是非常好用的,针对项目的构建部署启动集成性较高。总结来说,就是 配置输入仓库代码地址->输入识别信息->配置maven地址与pom文件->配置ssh远程服务器地址与编写shell脚本->一键构建->喝茶等待构建部署自启动完毕。
2024-03-24 11:20:28
2341
原创 美团笔试题:小球投盒-双HashSet法
首先来说一个可以优化的地方,这边的hashset2可以直接换成一个整型变量z即可,初始化可以为-1,我们可以发现操作为2的逻辑中的hashset2的size大小最多为1,因此判断hashset2是否为空的操作可以转换为判断z是否为-1,判断是否包含的逻辑可以转换为判断z和当前的盒子编号是否相等,后面的clear()和add()直接可以换成z=x-1,意思是将当前跳过的盒子编号赋值给z,替代了上述的两个操作,具体代码修改细节在此处不再赘述。
2024-03-18 11:46:27
722
原创 单词接龙的个人心得
对于力扣上的一道单词接龙题目,本文介绍了一种基于Diskstra算法的求解方式,因此和广度优先搜索遍历不太一样,供读者们交流。
2024-02-08 21:07:34
1016
1
原创 小白鼠毒药问题(代码实现)
小白鼠毒药问题是一个经典的概率问题,第一次遇到这个问题往往会无从下手,方法是我借鉴来的,之前看到这个解法非常感兴趣,今天抽空将代码进行了实现,至于文中提到的100瓶药瓶需要七只小白鼠的说法,那么为什么是七只,可以参考这篇博文小白鼠试毒问题(关于为什么是七只,文中有介绍)。小白鼠毒药问题完整代码,提取码:java.
2023-07-18 21:13:30
861
转载 Linux学习总结
Linux学习目标:Linux操作系统介绍与安装。Linux常用命令。Linux常用软件安装。Linux网络。防火墙。 Shell编程等。LinuxOS介绍与安装*...
2019-12-15 20:34:11
418
1
转载 Linux都应用在哪些领域?发展如何?
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...
2019-11-23 19:17:53
1059
转载 Linux内核从原理到代码详解|Linux内核视频教程
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-11-17 23:16:49
1103
转载 linux入门-使用vs2015开发与调试linux下应用
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-11-17 23:16:05
127
转载 最好用的LINUX 如何选择LINUX 深度LINUX
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-11-10 19:10:32
146
转载 三大操作系统比较,为什么开发要用Linux系统?(推荐)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-11-10 19:09:50
465
转载 Linux 移动或复制文件(文件夹)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-11-03 20:55:04
215
转载 linux允许端口远程访问开放端口
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-11-03 20:54:21
276
转载 Linux修改主机名(静态主机名、临时主机名)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-11-03 20:53:41
518
转载 【实用手记】linux下命令行查看图片
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-10-27 22:23:01
3959
1
转载 Ubuntu 和linux的关系
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-10-20 19:35:19
175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人