- 博客(77)
- 收藏
- 关注
原创 前缀和一维/二维-复习篇
总之以上例子并没有说从0下标开始是错的, 只是对比了两者的这个优势和劣势, 其实, 实际运用的时候你是需要实际的场景去做的.但是客观上来讲, 这个使用1开始确实他就比从0开始要优雅简洁一点, 这只是一个小建议, 所有今后在使用的时候还是使用1开始可能会更加方便, 优雅.
2025-12-29 20:10:46
405
原创 MonadFlowAI测试报告
基于Spring AI的企业级 AI 恋爱大师智能体,为用户提供情感指导服务。支持记忆持久化、RAG 知识库检索等能力,并且基于 ReAct 模式,能够自主思考并调用工具来完成复杂任务。
2025-12-14 21:43:49
751
原创 LeveretMQ的测试报告
参照RabbitMQ核心架构设计理念,自主研发分布式消息队列系统。通过自定义通信协议与异步IO模型实现高性能消息传输,支持可靠投递、消费确认及资源动态管理等企业级特性。
2025-12-14 21:42:57
795
原创 力扣hot100-160-相交链表
题目的意思就是题目的表面意思, 就是找到第一个相交的节点, 不用看什么skip多少, 直接自信按照自己的想法来就行了。
2025-11-20 11:45:20
363
原创 力扣141. 环形链表
那我们就满足他, 让他走1e4+1步, 如果他能坚持走1e4+1步,那说明一定有环(因为最多节点才只有1e4个啊,你走了1e4+1步,那多出来的一步肯定是因为有环啊), 在遍历的过程中, 我们还可以判断一下如果下一个节点是null了, 那就直接结束了,肯定是没有环的.先举个例子,比如:龟兔赛跑, 如果将乌龟和兔子放在一个环形的跑道上,让他们比赛, 兔子的速度大于乌龟, 在兔子中途不偷懒睡觉的情况下, 也就是正常比赛的情况下,显而易见: 乌龟是肯定要被套圈的, 通俗来讲: 也就是他们一定会相遇。
2025-11-16 12:45:05
399
原创 函数设计测试用例
我们知道对于这种:知道代码内部逻辑并且可以运行测试的测试种类属于白盒测试里的动态测试,因此可以考虑:条件覆盖,语句覆盖,条件组合覆盖等.循环计算过程中,时间过长的话程序是否会出现故障,要不要加上异常处理trycatch。易知:该函数的主要功能是将一个int类型的数组从小到大排序。数组过大时时间复杂度和空间复杂度是否符合预期。比如:该函数的的参数是int[]类型,
2025-07-19 17:38:46
356
原创 二分,二分答案
如果将题目带入现实,就不难理解,就像是分班一样,将若干个人分组,每组里的人要保证来自同一个班,并且每组的人数要尽可能"均匀",然后再加上一些后缀条件就是题意了,如果觉得这个解释不清晰,那就按照你自己的来,只要是能理解的方法都是好方法.
2025-07-07 23:56:13
1038
1
原创 孩子们的游戏/约瑟夫环(链表模拟,数组模拟,队列模拟,动态规划四种解法)
看完题目以后,你可能会嗅到一丝熟悉的味道,这不就是约瑟夫环换了一个说法吗.就是一群人围成一个环,然后进行报数游戏,报出数字的那个人出列,直到找到最后的赢家。
2025-07-03 17:30:01
1057
原创 Linux中的常用命令
chmod:修改文件的权限,可以使用数字或者u+rwx等chown:修改文件的拥有者,就是相当于将上图中的wangwu的位置修改掉chgrp:修改文件的所属组,相当于将上图中的root的位置修改掉。
2025-05-27 21:41:50
746
原创 快速排序&归并排序
第一次看别人写的详细快排,归并细节,可能会感觉内容很多,很难学.小生建议:看一遍详解可以但不要指望一次就搞懂全部,搞懂基本原理就行,代码也不要指望第一次就能记住全部,先将代码会写,第一次写代码肯定会很困难.然后今后做题的时候肯定会遇到,今后。他们思想的共同之处:分治。
2025-03-23 15:12:53
228
原创 快速幂&快速乘法&最大公因数&最小公倍数
对于快速幂,举个例子:求2024^2024,结果对1e9+7取模?此时如果你直接调用Math.pow(),肯定是算不出来的;
2025-03-18 12:29:52
304
原创 判断质数(素数)
因此i<num的条件又能进一步优化成i<=Math.sqrt(num) 一定要带等号,就像是16那个例子一样,4。由于该反比例函数关于y=x对称,因此当x == y的时候,就是最中间的点,此时带入。无论是1,还是2 都是对的,他们只是思想不同,但结果是一样的,选一个用即可。根据数学归纳法,验证,除了2,3,一个质数,一定是在6倍数的左边或右边,比如:21开方是一个4点多的数字,此时就只需要枚举到4就够了,16开方是4,枚举到4也就够了,就能正好排除掉重复的组。4是最中间的一组,也是唯一的一组,
2025-03-08 14:25:59
388
原创 仿 RabbitMQ 消息队列7(实战项目)
构造⼀个类表⽰⽅法的参数, 作为 Request 的 payload.不同的⽅法中, 参数形态各异, 但是有些信息是通⽤的, 使⽤⼀个⽗类表⽰出来. 具体每个⽅法的参数再通过继承的⽅式体现和参数同理, 也需要构造⼀个类表⽰返回值, 作为 Response 的 payload.这个是用于服务器返回给客户端执行成功或者失败的信息,要和下面的SubScribReturns区分针对每个 VirtualHost 提供的方法, 都需要有⼀个类表示对应的参数.
2025-02-13 10:11:14
1019
原创 仿 RabbitMQ 消息队列6(实战项目)
创建mqserver.VirtualHost在 RabbitMQ 中, 虚拟主机是可以随意创建/删除的. 咱们此处为了实现简单, 并没有实现虚拟主机的管理. 因此我们默认就只有⼀个虚拟主机的存在对于上面出现的两个新的类Router 和ConsumerManager 不用担心,用到的时候,我们再细讲。构造⽅法中会针对 DiskDataCenter 和 MemoryDataCenter 进⾏初始化,同时会把硬盘的数据恢复到内存中.这里的MemoryDataCenter里的init方法是空的,临时加上的,为
2025-02-12 16:51:11
1407
原创 仿 RabbitMQ 消息队列5(实战项目)
硬盘上存储数据, 只是为了实现 “持久化” 这样的效果. 但是实际的消息存储/转发, 还是主要靠内存的结构.对于 MQ 来说, 内存部分是更关键的, 内存速度更快, 可以达成更⾼的并发.
2025-02-12 13:54:45
619
原创 仿 RabbitMQ 的消息队列4(实战项目)
上述代码中, 使⽤数据库存储了 Exchange, Queue, Binding, 使⽤⽂本⽂件存储了 Message.接下来我们把两个部分整合起来, 统⼀进⾏管理.
2025-01-25 17:54:58
193
原创 仿 RabbitMQ 的消息队列2(实战项目)
紧接上一篇博客,我们将对数据库的 增,删,查已经写完了,下面我们就建一个管理数据库的类:DataBaseManager通过这个类来封装针对数据库的操作手动获取bean对象需要的context 必须要先初始化:所以我们在启动类里获取。测试 DataManager使⽤ Spring ⾃带的单元测试, 针对上述代码进⾏测试验证.在 test ⽬录中, 创建 DataManagerTest。
2025-01-20 19:18:00
1012
原创 仿 RabbitMQ 的消息队列1(实战项目)
我们以前学过阻塞队列,其实阻塞队列和消息队列的原理差不多。在实际的后端开发中,尤其是分布式系统⾥,跨主机之间使⽤⽣产者消费者模型,也是⾮常普遍的需求.因此,我们通常会把阻塞队列,封装成⼀个独⽴的服务器程序,并且赋予其更丰富的功能.这样的程序我们就称为消息队列(MessageQueue,MQ)
2025-01-19 15:42:37
1448
原创 约瑟夫环问题
如果第一次接触这道题,难免有些陌生。但如果只是在脑子里想象的话,那大概率会是一团浆糊,所以建议在纸上画一画,模拟一下,其实这道题也是能锻炼一定的代码能力的。(这里分享一个做题的小技巧:不要死磕一个题太久,该看答案咱还是得看,有时候退一步是为了更好的进步)。好了,回归正题。题目的大概意思就是:有n个人,围成一个圈,从第一个人开始报数,报到数字m的人出列,同时从下一个人开始继续报数,就这样循环往复,直到所有人都出列。如果听到这,有些人肯定会感觉很熟悉,毕竟可能玩过相似的游戏;
2024-12-11 21:37:25
933
原创 数据结构——堆
你可以想象一下:如果选择了头插,容量不够的时候需要进一步扩容,况且我们使用的是数组模拟堆。如果头插,我们需要整体都向后移动一位,移动后的堆已经不是原来的堆了,此时我们还需要向下调整,光是想想就很麻烦吧。我们知道:堆其实就是优先级队列,很显然,区别于普通的队列二字,他多出了优先级三个字。由于向上调整和向下调整有很相似的逻辑,我就不赘述图了,可以自己尝试画画,加深一下印象。当我们补充offer 代码的时候,会发现一个问题,我们是选择头插还是尾差呢?方法的基本框架都写好了,下面就是建堆了。此时,堆就算是建好了。
2024-09-12 18:08:39
771
2
原创 接口中的方法到底能有具体实现吗?
这是我无意间发现的一个问题,有一天在写代码的时候突然发现,我实现了一个接口却没有将他的抽象方法重写完,这还不是问题,问题是他还不报错。这是怎么回事呢?按理说接口的定义不就是:一个类实现该接口就必须重写其所有方法吗,为啥我没有把他的抽象方法重写完,还不报错呢?难道是编译器出错了?
2024-08-11 18:03:26
1295
原创 项目实战_图书管理系统(简易版)
此时我们只需要将用户传过来的用户名和密码和我们存储的用户名和密码对比,如果相同就返回true,反之,返回false。如果能正常显示就说明复制过来的前端代码没问题,不要计较前端加载的那些数据,那些都是假数据,后期那些代码是需要我们改的。简易版只实现上述两个功能,如有兴趣还请看下一期的升级版,升级版将会实现页面上的各个功能,以及解决统一事务的处理方式。接下来就是获取图书列表接口了,我们知道要想返回图书信息,我们得先有一个图书类啊,用来描述图书。后端的代码确保正确了以后,就该修改前端代码了。
2024-08-04 08:10:40
1253
原创 项目实战_表白墙(升级版)
如果我们想将数据存起来首先要有一个数据库吧,所以首先就是要创建一个数据库 ,由于直接在Mysql 小黑框里写有点麻烦,我们可以借助一些软件来更加简单的创建数据库,我使用的是Navicat Premium17,挺好用的,虽然它收费,但是搜搜教程,免费的就来了,懂我的意思吧。我们可以看到数据库里有很多属性,如果只靠我们之前定义的类中的属性肯定是不够的,所以我们要重新定义一个实体类和数据库里的属性对应。这是创建一个message_info表的代码,有兴趣的可以跟着敲一下,就当复习了,没兴趣的直接复制就行。
2024-07-31 21:20:50
6539
4
原创 我的创作纪念日
机缘不知不觉我在CSDN已经一年了,想到我写的第一篇博客时的费心尽力,到现在的手拿把掐。一对比,我明白我好像真的进步了。在最近的一个月我偶然看到了我之前的博客,发现阅读量已经破千了,心里默默感慨:这大概就是努力具象化的样子吧。真的,当时我的心里十分的激动,我迫切想要与别人分享,毕竟谁不想顺便去装个杯呢?一举两得。但是回首望去,我的身旁好像没有一人能真正懂我,我终于发现我们好像已经形同陌路了,此刻,我的身后一片虚无,举世茫茫,身旁只有大道相伴,唉,这难道就是强者独有的境界吗?哈哈哈,一不小心又被我装到了吧。
2024-07-18 08:39:34
725
原创 Spring MVC入门5
同样, 如果类上有 @RestController 注解时:表⽰所有的⽅法上添加了 @ResponseBody 注解, 也就是当前类下所有的⽅法返回值做为响应数据。如果⼀个类的⽅法⾥, 既有返回数据的, ⼜有返回⻚⾯的, 就把 @ResponseBody 注解添加到对应的⽅法上即可.也就是说: 在类上添加 @ResponseBody 就相当于在所有的⽅法上添加了 @ResponseBody 注解.如果作⽤在类上, 表⽰该类的所有⽅法, 返回的都是数据, 如果作⽤在⽅法上, 表⽰该⽅法返回的是数据.
2024-07-15 18:05:17
1140
原创 Spring MVC入门4
HttpServletResponse 对象代表服务器的响应. HTTP响应的信息都在这个对象中, ⽐如向客⼾端发送的数据, 响应头, 状态码等. 通过这个对象提供的⽅法, 可以获得服务器响应的所有内容。HttpServletRequest 对象代表客⼾端的请求, 当客⼾端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的⽅法,可以获得客⼾端请求的所有信息.Spring MVC在这两个对象的基础上进⾏了封装, 给我们提供更加简单的使⽤⽅法.
2024-07-15 10:06:40
827
原创 Spring MVC入门3
简单来说:JSON就是⼀种数据格式, 有⾃⼰的格式和语法, 使⽤⽂本表⽰⼀个对象或数组的信息, 因此JSON本质是字符串. 主要负责在不同的语⾔中数据传递和交换.接下里我们就要演示如何使用JSON来传递对象,详细回应上一篇文章末尾的问题。没有关系, 只是语法相似, js开发者能更快的上⼿⽽已, 但是他的语法本⾝⽐较简单, 所以也很好学。,2,编写代码,接收JSON对象, 需要使⽤ @RequestBody 注解。和字⾯表达的意思⼀样, 这个注解主要作⽤在请求URL路径上的数据绑定。• 国际通⽤语⾔-英语。
2024-07-12 20:16:20
758
原创 Spring MVC入门2
某些特殊的情况下,前端传递的参数 key 和我们后端接收的 key 可以不⼀致,⽐如前端传递了⼀个array2 给后端,⽽后端是使⽤ array 字段来接收的,这样就会出现参数接收不到的情况,如果出现。当有多个参数时,前后端进⾏参数匹配时,是以参数的名称进⾏匹配的,此时由于我们传递的参数的名称和形参是一致的,因此参数的位置是不影响后端获取参数的结果,所以我们将name和id交换位置也不会错。Postman里的KEY要和我们传递的参数要一致不然就会不匹配,相当于不能给这个参数赋值,于是他就默认为null了。
2024-07-11 21:16:51
1050
原创 Spring Web MVC入门
从标题我们就能看见一个很陌生的名词“”,这个名词听着很高大上,但它到底是啥呢?Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为 SpringMVCSpring Web MVC 是⼀个 Web 框架。
2024-07-11 15:42:19
1327
原创 最大连续1的个数(滑动窗口)
如果还没有看明白,没关系。详细解释一下:对比以前的滑动窗口,以前的判断条件是求某一段的和最大/求某一段含有不重复的字符最多……,只不过这次的判断条件是0的个数不能超过k,由于这个条件对我们子区间内还要进行操作,所以可能会使你下不去手,困惑。这道题大眼一看是关于翻转多少个0的问题,但是,如果你按照这种思维去做题,肯定不容易。所以我们要换一种思维去做,这种思维不是一下就能想到的,所以想不到也情有可原。但是只要抓住本质,按照那个模版来就能写对,这还需要平时多练。暴力解法就不展示了,就是两个for循环枚举。
2024-05-23 19:08:49
522
原创 无重复字符的最长子串(滑动窗口)
从一开始,我们就定义两个指针,同时指向0位置,让right指针向后走(进窗口),紧接着判断我们的hash表里是否有重复了(判断),如果重复了就出让left++(出窗口)直到hash表里重复的元素全出,再对个数进行更新(更新结果)。这种算法能极大减少指针移动的次数,我们不需要像暴力解法那样让right 每次都要从头再来,而是只需要向后移动一遍就行了。其实写这个暴力解法,写的还不熟,总是忘了下一步该咋写,那就是不熟练,多写写应该就行了。这也是一道滑动窗口的题,可以使用暴力解法,也能使用滑动窗口。
2024-05-18 15:48:36
375
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅