- 博客(276)
- 收藏
- 关注
原创 Day50 单词规律
时间复杂度是 O(n),其中 n 是字符串 s 中单词的数量,或者是模式 pattern 的长度。因为我们只遍历了一次字符串和模式。空间复杂度是 O(n),因为我们使用了两个哈希映射来存储字符和单词的映射关系。
2025-03-30 22:03:29
271
原创 Day49 最长连续序列
综合来看,总时间复杂度为 O(n),空间复杂度为 O(n)(存储 HashSet)。构造 HashSet:遍历 nums 存入 HashSet,时间 O(n)。每个元素最多访问两次(一次作为起点,一次在扩展时访问),总时间 O(n)。查找起点 & 计算最长序列:遍历 numSet 一次 O(n)。
2025-03-25 15:20:08
100
原创 Redis实战
数据表介绍:后端的最初功能都是基于Mybatis-Plus搭建的,前端代码后面有空再用Vue写更新。发送验证码:用户在提交手机号后,会校验手机号是否合法,如果不合法,则要求用户重新输入手机号如果手机号合法,后台此时生成对应的验证码,同时将验证码进行保存,然后再通过短信的方式将验证码发送给用户短信验证码登录、注册:用户将验证码和手机号进行输入,后台从session中拿到当前验证码,然后和用户输入的验证码进行校验,如果不一致,则无法通过校验,如果一致,则后台根据手机号查询用户,如果用户不存在,则为用户创建账号信
2025-03-13 15:30:58
696
原创 Day47 环形链表
判断链表是否有环,通常可以使用 快慢指针法,该方法通过两个指针(慢指针和快指针)遍历链表,如果链表中有环,两个指针最终会相遇。如果链表中存在环,快指针最终会追上慢指针。否则,快指针会先到达链表末尾(null),说明链表没有环。时间复杂度:O(n),其中 n 是链表的节点数。快慢指针最多遍历整个链表一次。空间复杂度:O(1),只用了两个额外的指针,空间复杂度是常数。
2025-03-06 16:16:28
145
原创 React
JSX是React的核心内容JSX表示在JS代码中书写HTML结构,是React声明式的体现使用JSX配合嵌入的JS表达式,条件渲染,列表渲染,可以渲染任意的UI结构结果使用className和style的方式给JSX添加样式React完全利用JS的语言自身的能力来编写UI,而不是造轮子增强HTML的功能。(对比VUE)
2025-03-06 14:21:02
1202
1
原创 Day46 反转字符串
时间复杂度: O(n),其中 n 是字符串的长度,因为我们只遍历了一次字符串,并在每次处理时执行常数时间的反转操作。空间复杂度: O(n),用于存储字符数组。
2025-02-26 21:43:54
197
原创 Day45 最长公共前缀
时间复杂度:最坏情况下,每个字符串都需要与前缀进行比较,比较次数为 O(n * m),其中 n 是字符串数组的长度,m 是最长字符串的长度。空间复杂度:O(1)。
2025-02-25 19:17:27
197
原创 Day43 两数相加
空间复杂度:O(n),其中 n 是结果链表的长度(最多为两个链表的长度之和)。我们需要额外的空间来存储结果链表。时间复杂度:O(n),其中 n 是较长链表的长度。我们需要遍历两个链表的所有节点,每个节点只访问一次。
2025-02-22 19:24:38
108
原创 Day42 反转链表II
时间复杂度:O(n),其中 n 是链表的节点数。我们只遍历了链表的一部分,所以复杂度是线性的。空间复杂度:O(1),我们只使用了常数的额外空间。
2025-02-21 19:32:00
117
原创 RabbitMQ服务异步通信
每个RabbitTemplate只能配置一个ReturnCallback,因此需要在项目加载时配置:// 获取RabbitTemplate对象 RabbitTemplate rabbitTemplate = applicationContext . getBean(RabbitTemplate . class);
2025-02-18 20:50:51
1038
原创 微服务保护---Sentinel
什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。可以认为:限流是对服务的保护,避免因瞬间高并发流量而导致故障,进而避免雪崩,是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围内,避免雪崩,是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html丰富的应用场景。
2025-02-12 20:51:13
1101
原创 分布式搜索引擎03
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。
2025-02-07 16:05:49
911
原创 分布式搜索引擎02
match和multi_match的区别是什么?match:根据一个字段查询multi_match:根据多个字段查询,参与查询字段越多,查询性能越差精确查询常见的有哪些?term查询:根据词条精确匹配,一般搜索keyword类型、数值类型、布尔类型、日期类型字段range查询:根据数值范围查询,可以是数值、日期的范围query:查询条件from和size:分页条件sort:排序条件highlight:高亮条件。
2025-01-21 22:49:53
1203
1
原创 分布式搜索引擎01
elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在github搜索代码:在电商网站搜索商品:在百度搜索答案:在打车软件搜索附近的车:lasticsearch结合kibana、Logstash、Beats,也就是elasticstack(ELK)。被广泛应用在日志数据分析、实时监控等领域:而elasticsearch是elasticstack的核心,负责存储、搜索、分析数据。elasticsearch底层是基于lucene来实现的
2025-01-18 14:26:01
1053
原创 RabbitMQ
建立connection创建channel利用channel声明队列利用channel向队列发送消息建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列。
2025-01-16 14:54:39
1281
原创 Docker
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。
2025-01-14 18:27:02
871
1
原创 SpringCloud
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。
2025-01-11 20:59:05
1316
1
原创 Redis
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。Redis 有序集合是 string 类型元素的集合,且不允许有重复成员。集合成员是唯一的,集合中不能出现重复的数据。按照插入顺序排序,可以有重复元素,类似于 Java 中的 LinkedList。集合中每个元素关联一个分数(score),根据分数升序排序,没有重复元素。无序集合,没有重复元素,类似于 Java 中的 HashSet。普通字符串,Redis 中最简单的数据类型。
2024-12-26 15:38:00
1285
原创 Day31无法吃午餐的学生数量
可以将问题转化为,分别统计喜欢吃方形和圆形的人数,有就减,最后剩余的人数就是无法吃到三明治的数量。时间复杂度:O(n),空间复杂度:O(1)。
2024-12-17 11:11:10
184
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人