<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jsnf555的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jsnf555</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jsnf555]]></copyright><item><title><![CDATA[关于redis相关api的封装]]></title><link>https://blog.youkuaiyun.com/jsnf555/article/details/161293558</link><guid>https://blog.youkuaiyun.com/jsnf555/article/details/161293558</guid><author>jsnf555</author><pubDate>Thu, 21 May 2026 22:47:47 +0800</pubDate><description><![CDATA[可以看到这里第二个get方法不仅实现了在redis查询指定key的数据之外，如果没有就调用supplier方法，进行数据库查询，如果没有查到就直接返回null，如果在数据库查到了，那么说明这个数据存在，但在redis中没有，那么将数据set到redis中。使用自定义的createRedisKey方法，对key进行格式化，比如你输入商品，那么你可以根据具体的业务，通过给定的key前缀和标识性字段，让createRedisKey对其进行进一步的加工。说真的，这里我之前没见过这个方法，ai给出的解释是这个方法。]]></description><category></category></item><item><title><![CDATA[关于redis的封装]]></title><link>https://blog.youkuaiyun.com/jsnf555/article/details/161292254</link><guid>https://blog.youkuaiyun.com/jsnf555/article/details/161292254</guid><author>jsnf555</author><pubDate>Thu, 21 May 2026 20:52:23 +0800</pubDate><description><![CDATA[该方法通过 `@Bean` 向容器注册了一个类型同样是 `StringRedisTemplate` 但名称为 `redisToolStringRedisTemplate` 的新 Bean（与 Spring Boot 自动配置的默认 `StringRedisTemplate` 类型相同、名称不同）。Spring Boot 自动配置的 `RedisTemplate` 默认采用 JDK 序列化，存入 Redis 后会产生类似 `\xAC\xED...` 的二进制乱码。]]></description><category></category></item><item><title><![CDATA[MyBatis plus的通用服务实现类]]></title><link>https://blog.youkuaiyun.com/jsnf555/article/details/160813849</link><guid>https://blog.youkuaiyun.com/jsnf555/article/details/160813849</guid><author>jsnf555</author><pubDate>Wed, 06 May 2026 10:17:05 +0800</pubDate><description><![CDATA[对于某个service层的方法，可以通过MyBatis plus提供的接口来快速实现一些常用的业务而不用手动实现，例如。MyBatis Plus 提供的通用服务实现类，它里面持有。，由 MyBatis Plus 框架提供。]]></description><category></category></item><item><title><![CDATA[时间复杂度为O(n方)的回文字符串的判断算法]]></title><link>https://blog.youkuaiyun.com/jsnf555/article/details/158853469</link><guid>https://blog.youkuaiyun.com/jsnf555/article/details/158853469</guid><author>jsnf555</author><pubDate>Mon, 09 Mar 2026 22:58:30 +0800</pubDate><description><![CDATA[对于s[i]和s[j](其中i,j数值合法)如果s[i]==s[j]的同时dp[i+1][j-1]=1，即长度为len-1的回文字符串的两边是相同的字母,则dp[i][j]也是相同的字符串。最后遍历整个dp数组，就能得出所有回文字符串的方案数，也可以求特定长度的回文字符串方案数。这里用dp[i][j]表示s[i]到s[j]所组成的是否是回文字符串。对于给定的一个字符串，判断所有是回文字符串的连续子串。若长度为1则标记为回文字符串。标记长度>=3的回文字符串。标记长度为2的回文字符串。]]></description><category></category></item><item><title><![CDATA[我的modecode]]></title><link>https://blog.youkuaiyun.com/jsnf555/article/details/158853312</link><guid>https://blog.youkuaiyun.com/jsnf555/article/details/158853312</guid><author>jsnf555</author><pubDate>Mon, 09 Mar 2026 22:46:47 +0800</pubDate><description><![CDATA[typedef long long ll(或#define ll long long)辗转相除法求最大公约数当两个数有一个是0时，他们的最大公约数是另一个非零的数。求逆元（当分母和mod互质）(即利用快速幂求x的模-2的次方并取模)求Cnm(组合数，这里需要用到逆元来求有除法的取模)可以动态维护前缀和和区间信息，可以频繁的更新前缀和。二维空间几何所用到的方向向量，分别是8方向和4方向。当不互质时 扩展欧几里得算法求逆元。]]></description><category></category></item><item><title><![CDATA[关于dfs2]]></title><link>https://blog.youkuaiyun.com/jsnf555/article/details/154303559</link><guid>https://blog.youkuaiyun.com/jsnf555/article/details/154303559</guid><author>jsnf555</author><pubDate>Sun, 02 Nov 2025 21:08:55 +0800</pubDate><description><![CDATA[1、遍历四条边进行遍历，对于边缘区域无论是0还是1区域块，我们可以将它标记为2，因为外围都被水淹了，只有被围住的区域才不被水淹，对于边缘区域的延伸我们只用将0标记为2。到这里我的第二类dfs也是结束了，在写完第二个后，我发现对于我上次总结的第三类记忆化搜索其实在我总结的前两类之中或多或少的已经出现了，感觉我总结的还是不太好。对于我遇到的第二种dfs求被围绕的区域面积，它与第一种dfs有很大的相似之处，在我看来，他们最大的不同就是边缘的区域忽略不算作要求的答案。还是拿01距离，求被0围住的1的区域面积。]]></description><category></category></item><item><title><![CDATA[关于dfs]]></title><link>https://blog.youkuaiyun.com/jsnf555/article/details/154145392</link><guid>https://blog.youkuaiyun.com/jsnf555/article/details/154145392</guid><author>jsnf555</author><pubDate>Thu, 30 Oct 2025 21:46:55 +0800</pubDate><description><![CDATA[搜索从左上角开始到右下角如果这个单位块的v=0表示未加入计数器首先ans++，之后我们上下左右四个方向开始继续搜索,这里我们可以用一个数组来方便我们操作:dx[4]={1,-1,0,0}dy=[4]={0,0,1,-1}只需要一个for循环就可以了，在获取到下一次dfs的坐标时，我们需要加一个判断，判断下一次dfs的坐标是否越界，同时如果对应坐标的v值等于0(未加入计数器)，那么就开始下一步搜索。这是写完之后写的，感觉写的还是有点冗杂，另一个时空的我如果看到这一文章会大骂"这写的是一坨"-.-]]></description><category></category></item><item><title><![CDATA[c++高精度之高精度除低精度]]></title><link>https://blog.youkuaiyun.com/jsnf555/article/details/154028926</link><guid>https://blog.youkuaiyun.com/jsnf555/article/details/154028926</guid><author>jsnf555</author><pubDate>Tue, 28 Oct 2025 19:44:17 +0800</pubDate><description><![CDATA[因此我们将第一个数据以字符串的形式读取，同时用一个变量来表示高精度的位数，然后用一个整形数组来接收每一位的值，第二个数据可以直接用long long 数据类型接收,将除法的步骤细分，从第一个数据的高位开始进行,一直到第一个数据的末尾，用一个整形数组表示答案，用循环将答案输出,我的这个例题不考虑余数，比如532/6,第二步逐步开始计算，这里我们用d表示当前余数(初始为0)，从最高位开始除，如果上一个高位有余数，那么需要传给下一位(*10)继续被除。第一步读取数据如上述方式读取。c++高精度除低精度。]]></description><category></category></item></channel></rss>