<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lkjsldkf的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lkjsldkf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lkjsldkf]]></copyright><item><title><![CDATA[从可推进时间的单体 Timer，到可 GM 改时钟的全局 Scheduler —— 一次 Go 定时系统设计实践]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/157994091</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/157994091</guid><author>lkjsldkf</author><pubDate>Thu, 12 Feb 2026 14:50:10 +0800</pubDate><description><![CDATA[虚拟时间时钟最简单方式为真实时间和偏移时间的组合相加，线上环境要绝对禁止偏移时间即关闭虚拟时钟。]]></description><category></category></item><item><title><![CDATA[一次技能 DoHook 重复触发的潜在问题分析]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/156860580</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/156860580</guid><author>lkjsldkf</author><pubDate>Mon, 12 Jan 2026 14:12:42 +0800</pubDate><description><![CDATA[这次并不是一次 Bug 修复，而是一次代码阅读中的风险识别，带来的几点思考：Hook 系统本身是无状态、无语义的事件是否“重复”，完全取决于调用方设计事件时，应优先明确“它代表什么时刻”比起修 Bug，提前发现语义隐患更有价值很多战斗系统的隐蔽问题，并不是某一行代码写错了，而是系统边界在最初没有被明确下来。这类问题在事件驱动架构、状态机、战斗系统中非常常见。如果在功能扩展前能提前意识到这些风险，往往能省下大量后期排查时间。]]></description><category></category></item><item><title><![CDATA[游戏战斗中一个“不会报错但会让 AI 发呆”的寻路问题]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/156852861</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/156852861</guid><author>lkjsldkf</author><pubDate>Mon, 12 Jan 2026 10:40:16 +0800</pubDate><description><![CDATA[如果所有候选目标都无法生成可行路径，那么当前锁定目标已经不再合法，必须显式解除。在战斗系统中，任何跨帧状态都必须考虑失败回滚路径，否则迟早会出现“假状态”。而是 AI 的“追击状态”没有在寻路失败时被正确回滚。其中三个关键变量：WalkTarget：当前追击目标。AI 会停在原地踏步，却依然保持对该目标的锁定，TargetList：锁定目标列表（影响选敌）部分塔在锁定目标后，会一直朝着目标方向移动，如果不在“寻路失败”分支中清理状态，但当路径被阻挡或目标发生变化后，既不攻击，也不重新选敌。]]></description><category></category></item><item><title><![CDATA[LeetCode hot100-力扣热题100刷题笔记（基于Java）]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/148650231</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/148650231</guid><author>lkjsldkf</author><pubDate>Sat, 14 Jun 2025 11:23:04 +0800</pubDate><description><![CDATA[一、1.两数之和题目链接法一：两层for循环暴力解（不采用）法二：用哈希表存放<值，下标>，方便找另一个数，省去了遍历另一个数的时间
二、49.字母异位词分组题目链接法一：法1把两个单词排序后再比较，相同的话就是异位词，这里要注意的点是不能直接用char[]当key，因为没写equals和hashcode方法导致每次key都不一样会返回新的列表。
采用：法二：把两个单词字母计数比较，各字母计数一样的话就是异位词，这里要注意的点是sb.appen(‘a’+i)和sb.append(hash[i])必须分开写，]]></description><category></category></item><item><title><![CDATA[项目由JDK8升级到JDK21的问题总结]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/144131185</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/144131185</guid><author>lkjsldkf</author><pubDate>Tue, 03 Dec 2024 16:13:34 +0800</pubDate><description><![CDATA[jdk8升级jdk21]]></description><category></category></item><item><title><![CDATA[对力扣：134.加油站中的贪心法的累加过程中出现负值需要将起点移动到当前下一个点尝试的原因进行反证法证明]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/143833475</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/143833475</guid><author>lkjsldkf</author><pubDate>Sun, 17 Nov 2024 16:24:01 +0800</pubDate><description><![CDATA[解法中可以看到，我们每次遍历到断点i的时候都是curSum已经]]></description><category></category></item><item><title><![CDATA[对力扣：37. 解数独中的判断逻辑使用位图进行位运算优化]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/143666103</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/143666103</guid><author>lkjsldkf</author><pubDate>Sun, 10 Nov 2024 20:50:25 +0800</pubDate><description><![CDATA[我们的思路是使用位图，分别为行位图，列位图和小宫格位图，这个位图记录了一个整型数字，拿行位图进行说明，这个数字按二进制位展开之后，每一位上记录了这一行上是否出现过某个数字，如果出现过，那么这位就设为1，没有出现过，那么这位就记为0，所以我们还需要把1-9的数字按照某种映射关系，映射到这个位图的某一位上。当需要进行判断的时候，我们只需要用数字映射后的值和位图进行与运算，就可以一次算出在这个行上有没有出现过这个数字，免去了每次判断都需要进行两层遍历的冗余判断。首先我们看一下原方法的代码。]]></description><category></category></item><item><title><![CDATA[对力扣：518.零钱兑换II中的遍历顺序对比纯完全背包问题的思考]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/142880450</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/142880450</guid><author>lkjsldkf</author><pubDate>Sat, 12 Oct 2024 16:18:59 +0800</pubDate><description><![CDATA[原因：如果外层是遍历背包，内层是遍历物品的话，那么dp[j - coins[i]]中保存的数值是使用到了所有物品的计算结果，所以可以理解为这种遍历顺序的目前处理位置为这次背包容量扩容之后可以添加新物品的可使用的面额，而不是之前所有处理的位置都是只可以使用到当前面额；所以外层是遍历背包，内层是遍历物品的顺序如果用背包空间为3，零钱面额为1、2来举例说明的话，当遍历到背包空间为3，面额为1的时候，可能之前背包里已经添加过面额为2的零钱了，这次再添加面额为1的面额即可，为{2、1}；]]></description><category></category></item><item><title><![CDATA[对力扣：77. 组合中，回溯在横向遍历中的剪枝操作的推导]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/142709560</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/142709560</guid><author>lkjsldkf</author><pubDate>Sat, 05 Oct 2024 01:01:09 +0800</pubDate><description><![CDATA[回溯剪枝操作]]></description><category></category></item><item><title><![CDATA[力扣：257. 二叉树的所有路径，对右子树不用回溯的解析]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/142709513</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/142709513</guid><author>lkjsldkf</author><pubDate>Sat, 05 Oct 2024 00:40:15 +0800</pubDate><description><![CDATA[回溯]]></description><category></category></item><item><title><![CDATA[力扣：459.重复的子字符串，对代码随想录的kmp方法的完整证明（包括必要性和充分性）]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/142152299</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/142152299</guid><author>lkjsldkf</author><pubDate>Wed, 11 Sep 2024 22:57:13 +0800</pubDate><description><![CDATA[kmp方法证明重复的子字符串问题]]></description><category></category></item><item><title><![CDATA[对力扣：28. 找出字符串中第一个匹配项的下标，其中kmp算法求next数组循环回溯的理解]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/142035695</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/142035695</guid><author>lkjsldkf</author><pubDate>Mon, 09 Sep 2024 12:07:50 +0800</pubDate><description><![CDATA[kmp算法]]></description><category></category></item><item><title><![CDATA[对力扣：15. 三数之和，哈希表解法详解]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/141954363</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/141954363</guid><author>lkjsldkf</author><pubDate>Fri, 06 Sep 2024 11:15:57 +0800</pubDate><description><![CDATA[三数之和哈希表方法讲解]]></description><category></category></item><item><title><![CDATA[基于Redis实现类似大众点评功能的点评业务开发文档]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/140819937</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/140819937</guid><author>lkjsldkf</author><pubDate>Wed, 31 Jul 2024 22:36:36 +0800</pubDate><description><![CDATA[主要流程：主要步骤分为三项，①发送短信验证码；②短信验证码登录、注册和③校验登陆状态图1：session方式主要登录流程图在①中用户在前端填写手机号后后端需要校验手机号格式是否正确，如果不正确则不发送验证码并在前端提示错误信息，如果手机号码正确则发送给用户短信验证码并将验证码保存到session；在②中用户登录时如果用户不存在即为新用户号码，则在数据库中创建新用户即自动完成注册并在校验验证码正确登录完成后将用户保存到session中；]]></description><category></category></item><item><title><![CDATA[2016年408数据结构算法真题c语言实现暴力解（带测试功能）]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/129851416</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/129851416</guid><author>lkjsldkf</author><pubDate>Thu, 30 Mar 2023 09:46:27 +0800</pubDate><description><![CDATA[【代码】2016年408数据结构算法真题c语言实现暴力解（带测试功能）]]></description><category></category></item><item><title><![CDATA[2017年408数据结构算法真题c语言实现暴力解（带测试功能）]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/129840153</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/129840153</guid><author>lkjsldkf</author><pubDate>Wed, 29 Mar 2023 16:43:36 +0800</pubDate><description><![CDATA[【代码】2017年408数据结构算法真题c语言实现暴力解（带测试功能）]]></description><category></category></item><item><title><![CDATA[2014年408数据结构算法真题c语言实现暴力解（带测试功能）]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/129830953</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/129830953</guid><author>lkjsldkf</author><pubDate>Wed, 29 Mar 2023 10:00:57 +0800</pubDate><description><![CDATA[【代码】2014年408数据结构算法真题c语言实现暴力解（带测试功能）]]></description><category></category></item><item><title><![CDATA[2011年408数据结构算法真题c语言实现暴力解（带测试功能）]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/129829825</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/129829825</guid><author>lkjsldkf</author><pubDate>Wed, 29 Mar 2023 09:17:30 +0800</pubDate><description><![CDATA[【代码】2011年408数据结构算法真题c语言实现暴力解（带测试功能）]]></description><category></category></item><item><title><![CDATA[2010年408数据结构算法真题c语言实现暴力解（带测试功能）]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/129823254</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/129823254</guid><author>lkjsldkf</author><pubDate>Tue, 28 Mar 2023 19:42:53 +0800</pubDate><description><![CDATA[【代码】2010年408数据结构算法真题c语言实现暴力解（带测试功能）]]></description><category></category></item><item><title><![CDATA[2009年408数据结构算法真题c语言实现暴力解（带测试功能）]]></title><link>https://blog.youkuaiyun.com/lkjsldkf/article/details/129821271</link><guid>https://blog.youkuaiyun.com/lkjsldkf/article/details/129821271</guid><author>lkjsldkf</author><pubDate>Tue, 28 Mar 2023 18:18:51 +0800</pubDate><description><![CDATA[【代码】2009年408数据结构算法真题c语言实现暴力解（带测试功能）]]></description><category></category></item></channel></rss>