<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yiting2580的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yiting2580</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yiting2580]]></copyright><item><title><![CDATA[FloodFill算法题目]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/158098913</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/158098913</guid><author>yiting2580</author><pubDate>Thu, 26 Feb 2026 22:12:43 +0800</pubDate><description><![CDATA[与上一题的思想类似，如果我们按照正常的逻辑，验证某个位置能否流入太平洋或者大西洋，下一次遍历其他位置时，可能还会经历上一次的路径，就会导致判断重复路径，时间复杂度较高，因此，本道题我们也采用正难则反的思想。那么，被标记两次的点，就是我们要找的结果。本道题的意思是我们要找到某个位置，使这个位置既可以流入太平洋也可以流入大西洋，能否流动取决于数值大小，大的数字可以流向小于等于它的数字。可以先利用dfs 将与边相连的O区域做上标记，然后重新遍历矩阵，将没有标记过的O 修改成X 即可。的像素，将其修改为目标颜色。]]></description><category></category></item><item><title><![CDATA[记忆化搜索]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157838776</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157838776</guid><author>yiting2580</author><pubDate>Mon, 09 Feb 2026 13:56:06 +0800</pubDate><description><![CDATA[因为策略 1 的最坏成本（1）比策略 2（2）小，这就是 “确保获胜的最小现金数”—— 选策略 1，只要准备 1 元，不管对手选 1 还是 2，你都能赢，且这是最少需要准备的钱。要考虑 “最坏情况”：比如你选了一套猜测策略，对手选的数字会让你花最多的钱，这个 “最多的钱” 就是这套策略的成本；以n=5为例，我们可以发现递归的过程中，d(3)被重复计算两次，那我们就可以给递归加个记事本（备忘录）”，让程序记住已经算过的子问题，避免重复计算。问题：我们要在「所有可能的最坏情况」中，找到「成本最低」的那个策略。]]></description><category></category></item><item><title><![CDATA[买卖股票问题]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157645534</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157645534</guid><author>yiting2580</author><pubDate>Tue, 03 Feb 2026 22:28:25 +0800</pubDate><description><![CDATA[本文将介绍六道买卖股票问题从易到难，用到了贪心算法以及动态规划算法。]]></description><category></category></item><item><title><![CDATA[MySQL事务介绍]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157658638</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157658638</guid><author>yiting2580</author><pubDate>Mon, 02 Feb 2026 22:38:52 +0800</pubDate><description><![CDATA[事务是将一组 SQL 操作打包成的 “不可分割的执行单元”，要么全部成功（提交），要么全部失败（回滚），绝不存在 “执行一半” 的中间状态。最经典的例子就是转账：张三给李四转 100 元，核心是两条 SQL—— 张三余额 - 100、李四余额 + 100。事务能保证：要么两条 SQL 都执行成功，要么都不执行，不会出现 “张三钱少了但李四没收到” 的情况。]]></description><category></category></item><item><title><![CDATA[合并区间（贪心算法）]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157580840</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157580840</guid><author>yiting2580</author><pubDate>Sat, 31 Jan 2026 13:24:32 +0800</pubDate><description><![CDATA[再根据上图可以得出，有交集的时候，合并过程中左端点依旧是left，而右端点需要选择较大值。2、根据排序后的结果，总结出一些规律，进而得出解决这个问题的策略。本道题实际上是让我们求并集，可以采用左端点排序（排完序可以发现，这时我们先把给定区间加入到结果数组中，然后让。，针对后面的区间在进行上述合并过程。1、排序（左端点或右端点）]]></description><category></category></item><item><title><![CDATA[N皇后（剪枝策略）]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157579056</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157579056</guid><author>yiting2580</author><pubDate>Sat, 31 Jan 2026 11:25:33 +0800</pubDate><description><![CDATA[以此类推，我们可以总结出一些规律，不难发现，每一层都在做相同的事情，对于不合法的情况，我们剔除，合法的话我们就进行下一层判断。，记录这一列是否有皇后，如果有这个值为true，我们在下一层就不需要考虑这个值为true的情况。(这里不需要偏移量，不会发生数组越界问题，直接判断两数相加的值在不在数组中)n为4的时候，我们可以画出2*n-1=7条线，所以我们在定义一个。放置完第0行，我们分别来看这四种情况对应的第1行应该怎么放。固定好第0行皇后的位置之后，我们放置第一行也有四种情况，的数组来表示副对角线的情况。]]></description><category></category></item><item><title><![CDATA[MySQL索引介绍]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157438849</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157438849</guid><author>yiting2580</author><pubDate>Tue, 27 Jan 2026 22:06:46 +0800</pubDate><description><![CDATA[回表查询是指非聚集索引查询时，叶子节点仅存主键，需通过主键再次查询聚集索引获取完整数据的过程。②将高频查询列纳入复合索引。当查询的列刚好是索引列（或复合索引的所有列）时，无需回表，直接从索引中获取数据，称为 “索引覆盖”。索引与数据分离存储，叶子节点存储 “索引键 + 主键值”，需通过主键值回表查询完整数据（此过程称为 “回表”）。禁忌：不要过度建索引（一张表建议不超过 5 个）、不要在低频查询列建索引、不要在大字段（如 TEXT）建索引。非聚集索引依赖聚集索引，删除聚集索引会导致所有非聚集索引失效。]]></description><category></category></item><item><title><![CDATA[Redis总结]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157359413</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157359413</guid><author>yiting2580</author><pubDate>Sun, 25 Jan 2026 17:16:41 +0800</pubDate><description><![CDATA[高性能的 key-value 内存数据库，以键值对形式存储数据，支持持久化到硬盘，不依赖 “表” 结构，核心优势是简单易用和高性能。核心逻辑简单，性能瓶颈多在内存或 IO，而非 CPU，多线程无明显收益；避免多线程带来的线程安全问题和线程切换开销；6.0 后引入多线程优化：仅用于处理网络请求和协议解析，命令执行仍保持单线程，提升 IO 处理效率。Redis 高可用解决方案，由多个哨兵节点组成，监控主从节点状态，自动完成故障发现和故障转移；监控：定期检测数据节点和其他哨兵节点是否可达；]]></description><category></category></item><item><title><![CDATA[Redis应用(缓存和分布式锁)]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157329306</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157329306</guid><author>yiting2580</author><pubDate>Sat, 24 Jan 2026 19:45:43 +0800</pubDate><description><![CDATA[Redis 启动或大量 key 失效后，提前将热点数据写入缓存，避免缓存空窗期导致数据库压力骤增。]]></description><category></category></item><item><title><![CDATA[RabbitMQ相关问题总结]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157327086</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157327086</guid><author>yiting2580</author><pubDate>Sat, 24 Jan 2026 15:50:39 +0800</pubDate><description><![CDATA[支付成功后，支付系统向 MQ 发送 “支付完成” 消息，订单系统（更新订单状态）、库存系统（扣减库存）、财务系统（记账）、积分系统（增加积分）订阅该消息，同步完成各自业务逻辑，避免多系统频繁查询支付结果。定义：接收生产者发送的消息，根据路由键（Routing Key）和绑定规则（Binding）将消息路由到对应的队列。，队列绑定交换机时指定路由键，生产者发送消息时指定路由键，交换机仅将消息路由到路由键匹配的队列。，生产者发送消息到交换机，交换机将消息路由到所有绑定的队列，每个队列的消费者都能收到消息。]]></description><category></category></item><item><title><![CDATA[Redis集群介绍]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/149515003</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/149515003</guid><author>yiting2580</author><pubDate>Fri, 23 Jan 2026 18:30:20 +0800</pubDate><description><![CDATA[槽位数量太少会导致单个槽数据量大，迁移慢，槽位数量太多的话会增加节点之间的心跳包开销(心跳包需要携带槽位位图，16384个槽仅需2KB，65536个仅需8KB)]]></description><category></category></item><item><title><![CDATA[Redis哨兵机制介绍]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157292550</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157292550</guid><author>yiting2580</author><pubDate>Fri, 23 Jan 2026 15:52:31 +0800</pubDate><description><![CDATA[— 不仅恢复慢，还容易出错，完全不符合生产环境的高可用要求。而 Redis 哨兵（Sentinel）的核心作用，就是：主节点挂了，哨兵能自动检测、自动选新主、自动同步数据，全程无需人工干预，这也是 哨兵的核心价值。]]></description><category></category></item><item><title><![CDATA[RabbitMQ集群和仲裁队列]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157286456</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157286456</guid><author>yiting2580</author><pubDate>Fri, 23 Jan 2026 11:16:23 +0800</pubDate><description><![CDATA[使用仲裁队列可以在RabbitMQ节点间进行队列数据的复制，从而达到在一个节点宕机时，队列仍然可以提供服务的效果。由Leader发起，将客户端的消息(操作日志)同步给所有的Follower，定期发送心跳，宣告自己存活，组织其他节点发起选举。由Candidate发起，竞选Leader时，向其他节点拉票，每个节点在一个任期内。如果一个节点的当前任期号比其他节点小，那么它就将自己的任期号更新为较大的那个值.：所有客户端都连同一个节点，这个节点网络负载爆满，其他节点闲得慌，浪费资源。]]></description><category></category></item><item><title><![CDATA[RabbitMQ相关问题（1）]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157176340</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157176340</guid><author>yiting2580</author><pubDate>Thu, 22 Jan 2026 15:11:14 +0800</pubDate><description><![CDATA[一句话概括： 生产者按照顺序 消息A  -> 消息B  -> 消息C  发送消息，消费者也严格按照 消息A  -> 消息B  -> 消息C  的顺序进行消费和处理。]]></description><category></category></item><item><title><![CDATA[Redis主从复制介绍]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157213747</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157213747</guid><author>yiting2580</author><pubDate>Wed, 21 Jan 2026 16:08:20 +0800</pubDate><description><![CDATA[部分复制：处理在主从复制中因网络闪断等原因造成的数据丢失场景，当从节点再次连上主节 点后，如果条件允许，主节点会补发数据给从节点。：① 作为 A 的从节点，同步 A 的数据；全量复制：一般初次复制场景，会把主节点全部 数据⼀次性发送给从节点，当数据量较大时，会对主从节点和⽹络造成很大的开销。从节点：开启 AOF → 保证数据不丢（就算主节点数据丢了，从节点的 AOF 能恢复全部数据，保证数据安全。树形主从结构使从节点不但可以复制主节点数据，同时可以作为其他从节点的主节点继续向下层复制。]]></description><category></category></item><item><title><![CDATA[Redis持久化：RDB与AOF]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/157182998</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/157182998</guid><author>yiting2580</author><pubDate>Tue, 20 Jan 2026 23:49:45 +0800</pubDate><description><![CDATA[Redis提供RDB和AOF两种持久化机制。RDB通过定期生成数据快照实现持久化，支持手动/自动触发，采用bgsave方式避免阻塞主进程，具有恢复速度快但可能丢失数据的特性。AOF通过记录写操作命令实现持久化，支持多种同步策略和重写机制来优化性能，数据安全性更高但恢复较慢。两种方式各有优劣，RDB适合灾难恢复，AOF适合实时持久化。Redis 4.0引入混合持久化，结合了两者优点。]]></description><category></category></item><item><title><![CDATA[Redis基础知识及五种类型操作]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/156981199</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/156981199</guid><author>yiting2580</author><pubDate>Sun, 18 Jan 2026 12:41:26 +0800</pubDate><description><![CDATA[lpush：讲一个或多个元素从左侧放入（头插）到List中返回List的长度lpushx：当key存在的时候将一个或者多个元素头插到List中，不存在的话直接返回（注意与lpush的区别）rpush：将一个或者多个元素尾插到List中rpushx：当key存在时，将一个或者多个元素尾插到List中lrange：获取从start到end区间的所有元素，闭区间lpop：从 List左侧取出元素（头删）lpop keyrpop：从List右侧取出元素（尾删）rpop  key。]]></description><category></category></item><item><title><![CDATA[垃圾回收介绍]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/149549202</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/149549202</guid><author>yiting2580</author><pubDate>Wed, 23 Jul 2025 22:49:31 +0800</pubDate><description><![CDATA[在程序运行过程中，内存管理是至关重要的环节。如果开发者手动管理内存，稍有不慎就可能出现内存泄露、野指针等问题，严重影响程序的稳定性。而垃圾回收机制的出现，为我们解决了这些难题。下面，我们就来总结一下垃圾回收的核心知识点。]]></description><category></category></item><item><title><![CDATA[类加载过程及双亲委派模型]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/149546621</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/149546621</guid><author>yiting2580</author><pubDate>Tue, 22 Jul 2025 21:57:34 +0800</pubDate><description><![CDATA[这里的二进制字节流可以从多种来源获取，比如从本地文件系统中的.class 文件读取、从 JAR 包中读取、通过网络下载、由其他文件生成（如 JSP 文件被编译成.class 文件）等。类加载过程是 JVM 将类的字节流加载到内存并进行处理，最终形成可执行代码的过程，包括加载、验证、准备、解析和初始化五个阶段，每个阶段都有其独特的作用，共同保证了类能够正确地被 JVM 识别和使用。​双亲委派模型则是类加载器遵循的重要机制，它通过层级委派。]]></description><category></category></item><item><title><![CDATA[IP协议介绍]]></title><link>https://blog.youkuaiyun.com/yiting2580/article/details/149482683</link><guid>https://blog.youkuaiyun.com/yiting2580/article/details/149482683</guid><author>yiting2580</author><pubDate>Sun, 20 Jul 2025 20:53:59 +0800</pubDate><description><![CDATA[IPv4使用4个字节作为IP地址，IPv6使用16个字节作为IP地址，2^128，这是一个天文数字，可以保证所有设备IP地址唯一，但是由于IPv6和IPv4不兼容，升级的话需要更换设备，所以现在IPV6普及率较低。形如这个过程，我们逐渐询问接下来的地址，因为网络环境是相当复杂的，任何一个路由器无法存储所有网络信息，不过每个路由器都可以知道附近的网络情况。只给接入网络的设备分配IP地址，因此同⼀个MAC地址的设备,每次接⼊互联网中得到的IP地址不⼀定是相同的。实际偏移的字节数是这个值*8得到的。]]></description><category></category></item></channel></rss>