<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xsh219的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xsh219</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xsh219]]></copyright><item><title><![CDATA[Gin 中常见参数解析方法]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/149273758</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/149273758</guid><author>xsh219</author><pubDate>Fri, 11 Jul 2025 14:24:06 +0800</pubDate><description><![CDATA[【代码】Gin 中常见参数解析方法。]]></description><category></category></item><item><title><![CDATA[Go语言执行个hello world都需要好几分钟]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/148794952</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/148794952</guid><author>xsh219</author><pubDate>Fri, 20 Jun 2025 16:16:51 +0800</pubDate><description><![CDATA[解决方法：看一下有没有windows捆绑的微软电脑管家，把它删掉，速度立马上去了。]]></description><category></category></item><item><title><![CDATA[利用是否为空指针来跳过第一次比较--LeetCode 530. 二叉搜索树的最小绝对差]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/148726523</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/148726523</guid><author>xsh219</author><pubDate>Wed, 18 Jun 2025 00:05:55 +0800</pubDate><description><![CDATA[利用 BST 的中序遍历特性可以将问题简化为“找相邻节点最小差”；使用pre指针记录上一个节点的值可以避免额外数组；巧妙利用pre!= nil，跳过第一次比较，简洁又安全！]]></description><category></category></item><item><title><![CDATA[Linux中的前台（同步）运行 或 后台（异步）运行]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/148194272</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/148194272</guid><author>xsh219</author><pubDate>Sat, 24 May 2025 18:24:10 +0800</pubDate><description><![CDATA[写法后台运行断开终端是否继续日志重定向推荐程度✅❌（会挂掉）❌一般❌（前台）✅默认写到nohup.out中等✅✅✅（可指定）✅ 最推荐✅✅✅✅ 最推荐后台程序的输出去哪了？我如何查看？]]></description><category></category></item><item><title><![CDATA[了解性文章 如果面试中 我拿到一道题目，我怎么知道是用什么方法呢？]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/148177288</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/148177288</guid><author>xsh219</author><pubDate>Fri, 23 May 2025 22:35:25 +0800</pubDate><description><![CDATA[🚨刷题初期不要强行判断用哪种算法，先写暴力，写熟不同题型后，识别能力自然会提高！]]></description><category></category></item><item><title><![CDATA[贪心算法套路模板＋详细适用场景＋经典题目清单]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/148176978</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/148176978</guid><author>xsh219</author><pubDate>Fri, 23 May 2025 22:07:25 +0800</pubDate><description><![CDATA[会议室 II（类似区间最大重叠数，也可用贪心管理资源）面额有贪心最优结构，如常见硬币（1、5、10、25）用最少数量的箭射爆气球（与跳跃范围相似）区间调度问题：选出最多互不重叠的区间。区间覆盖问题：用最少区间覆盖某个范围。买卖股票的最佳时机 III（结合DP）买卖股票的最佳时机 IV（结合DP）零钱兑换（DP推荐，贪心不一定适用）划分字母区间（字符串贪心和区间结合）依次选择满足条件的区间（如不重叠）无重叠区间（最少移除使区间不重叠）用最少数量的箭射爆气球（区间覆盖）最佳买卖股票时机含冷冻期（DP）]]></description><category></category></item><item><title><![CDATA[动态规划应用场景 + 代表题目清单（模板加上套路加上题单）]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/148176720</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/148176720</guid><author>xsh219</author><pubDate>Fri, 23 May 2025 21:52:03 +0800</pubDate><description><![CDATA[单序列：dp[i] = max(dp[j]) + 1 (j < i 且 nums[j] < nums[i])双序列：dp[i][j] = max(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]+1) 依赖匹配关系// 0/1 背包（从大到小）for i := 0;i < n;i++ {j-- {// 完全背包（从小到大）for i := 0;i < n;]]></description><category></category></item><item><title><![CDATA[动态规划中的 求“最长”、“最大收益”、“最多区间”、“最优策略” 双重 for + 状态转移]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/148176260</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/148176260</guid><author>xsh219</author><pubDate>Fri, 23 May 2025 21:23:17 +0800</pubDate><description><![CDATA[i是当前状态j是过去状态if 条件成立，说明可以从过去j走到现在i就是取过去所有能转移过来的路径中最优的那一条for i := 1;i < n;j < i;j++ {// 某种条件成立这类“双重 for + 状态转移”的写法，在一类特定的动态规划问题中非常经典和高频。]]></description><category></category></item><item><title><![CDATA[完全背包问题中「排列数」与「组合数」的核心区别]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147984450</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147984450</guid><author>xsh219</author><pubDate>Thu, 15 May 2025 15:31:07 +0800</pubDate><description><![CDATA[目标外层循环内层循环特点组合数（无序）遍历物品i遍历容量j顺序不会重复排列数（有序）遍历容量j遍历物品i会计算所有顺序[1,1,2][2,1,1][1,2,1]是同一种组合。所以我们只想知道「有哪些组合方式」，不在意顺序。目标外层循环结果特性会不会重复顺序组合数物品在外不计顺序不会排列数背包在外顺序不同都算会。]]></description><category></category></item><item><title><![CDATA[5.12 go小公司面试 面经]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147900475</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147900475</guid><author>xsh219</author><pubDate>Mon, 12 May 2025 17:12:48 +0800</pubDate><description><![CDATA[6. map是否是线程安全的，怎么解决线程安全的办法。2. 介绍一下你的分布式缓存系统（没答好）3. 介绍一下 make 和new 的区别。8 介绍一下 tcp三次握手，为什么不两次。4. 向一个关闭的channel的读和写。5. 介绍一下GMP模型。1.介绍一下你的技术栈。7 线程和协程的区别。]]></description><category></category></item><item><title><![CDATA[面试中常问的设计模式及其简洁定义]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147878956</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147878956</guid><author>xsh219</author><pubDate>Sun, 11 May 2025 20:55:26 +0800</pubDate><description><![CDATA[模式名常被问到解释（简洁）单例模式✅ 高频保证一个类只有一个实例，并提供全局访问点。工厂模式✅ 高频创建对象的接口由子类决定，屏蔽了对象创建逻辑。抽象工厂模式✅提供多个产品族的一组工厂方法。建造者模式✅将复杂对象的构建过程拆分，并允许按步骤构建。原型模式✅通过复制已有对象来创建新对象。策略模式✅ 高频封装一组可互换的算法，并使它们之间可以替换。观察者模式✅ 高频对象之间一对多依赖关系，通知所有观察者对象。适配器模式✅转换接口，使原本不兼容的接口协同工作。装饰器模式✅。]]></description><category></category></item><item><title><![CDATA[HTTP 和 WebSocket 的区别 ]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147878738</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147878738</guid><author>xsh219</author><pubDate>Sun, 11 May 2025 20:42:50 +0800</pubDate><description><![CDATA[协议简要定义HTTP一种基于请求-响应模式的、无状态的应用层协议，通常用于客户端与服务器之间的数据通信。WebSocket一种全双工通信协议，可以在客户端和服务器之间建立持久连接，实现实时、低延迟的数据传输。项目HTTPWebSocket连接方式请求-响应全双工是否持久连接否是通信效率相对较低高服务端能否主动发消息否可以常用场景页面加载、REST API实时聊天、推送、直播协议升级无初次通过 HTTP，之后升级协议。]]></description><category></category></item><item><title><![CDATA[01 背包和完全背包 遍历的顺序]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147863209</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147863209</guid><author>xsh219</author><pubDate>Sun, 11 May 2025 00:50:21 +0800</pubDate><description><![CDATA[01 背包反向走，完全背包正向走。一个不能重复选，一个必须重复选！如果你用的是二维数组dp[i][j]，遍历顺序的本质和一维数组一样，关键区别只在于你是否允许重复选物品（完全 or 01）。背包类型i遍历j（容量）遍历方向原因01 背包从 0 到 n反向j = N ➝ 0防止本轮重复选完全背包从 0 到 n正向j = 0 ➝ N支持多次选多重背包从 0 到 n通常反向，或展开为多个01背包具体看实现01 背包反着走，dp[i-1] 看前头；完全背包正着走，dp[i] 行内抠。]]></description><category></category></item><item><title><![CDATA[卡特兰数--]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147747035</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147747035</guid><author>xsh219</author><pubDate>Tue, 06 May 2025 20:42:52 +0800</pubDate><description><![CDATA[给定 n 个节点，构建满足 AVL 高度平衡条件的二叉树的方案数，在某些简化条件下也呈现卡特兰数的增长趋势。的操作数序列，在不改变操作数顺序的前提下，通过加括号来确定乘法顺序的方式有 n-1 个卡特兰数种。在使用栈构造特定不下降子序列（如栈排序问题）时，某些构造路径数也可以转化为卡特兰数的问题。将一个凸 n+2 边形，用 n−1 条不相交对角线划分成 n 个三角形。对 n 个矩阵 A₁A₂…例如：n = 3（6 个点）时，有 5 种不相交连线方法。例如：当 n = 3 时，有 5 种不同形态的二叉树。]]></description><category></category></item><item><title><![CDATA[gRPC 的使用和了解]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147564452</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147564452</guid><author>xsh219</author><pubDate>Sun, 27 Apr 2025 17:11:33 +0800</pubDate><description><![CDATA[刚刚我们对 gRPC 的四种调用方式进行了探讨，但光会用还是不够的，知其然知其所然很重要，因此我们需要对 gRPC 的整体调用流转有一个基本印象，那么最简单的方式就是对 Client 端调用 Server 端进行抓包去剖析，看看整个过程中它都做了些什么事。一元 RPC，也就是是单次 RPC 调用，简单来讲就是客户端发起一次普通的 RPC 请求，响应，是最基础的调用类型，也是最常用的方式。服务器端流式 RPC，也就是是单向流，并代指 Server 为 Stream，Client 为普通的一元 RPC 请求。]]></description><category></category></item><item><title><![CDATA[Go RPC 服务方法签名的要求]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147564090</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147564090</guid><author>xsh219</author><pubDate>Sun, 27 Apr 2025 16:51:49 +0800</pubDate><description><![CDATA[方法必须是导出的。方法的第一个参数是请求参数，必须是结构体（值类型或指针类型）。方法的第二个参数是响应参数，必须是指针类型。返回值是error类型，用于表示调用是否成功。方法调用是同步的，客户端会等待服务端完成后再返回结果。]]></description><category></category></item><item><title><![CDATA[递归的模板 （以反转链表为例）]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147404797</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147404797</guid><author>xsh219</author><pubDate>Mon, 21 Apr 2025 23:37:32 +0800</pubDate><description><![CDATA[我们再来回顾一下递归的模板，终止条件，递归调用，逻辑处理。]]></description><category></category></item><item><title><![CDATA[小公司面经，当练手了]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147397318</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147397318</guid><author>xsh219</author><pubDate>Mon, 21 Apr 2025 16:37:22 +0800</pubDate><description><![CDATA[linux 常用吗？说一下啊vim常用命令，删除文件啥的。redis 单线程还是多线程   为啥这么快？公司的紧急事务和个人的时间如何取舍你咋看。JWT 怎么实现的，JWT被盗用了咋办。channel 了解嘛？缓存穿透 缓冲击穿  缓存雪崩。redis 常见的 数据结构。slice 有了解嘛？nginx  了解过嘛？日志管理是基于什么实现的。http下面是什么协议？rpc有哪些数据结构。]]></description><category></category></item><item><title><![CDATA[goland做验证码识别时报“undefined: gosseract.NewClient”（Windows系统）]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147325004</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147325004</guid><author>xsh219</author><pubDate>Fri, 18 Apr 2025 14:42:20 +0800</pubDate><description><![CDATA[这个错误表明在编译过程中，gosseract 依赖的 Leptonica 库无法找到，具体是 leptonica/allheaders.h文件。Leptonica 是一个用于图像处理的 C 库，Tesseract 依赖它进行图像操作。解决这个问题的方法是确保 Leptonica 库被正确安装并在你的系统中能够被找到。gosseract 应该有 和 c 相关的配置库因此需要安装 cgo 并且启用 CGO_ENABLED。然后需要安装Mingw，相当于 Linux里面的 gcc。接着 又报了这个错误。]]></description><category></category></item><item><title><![CDATA[Go 语言的 map 在解决哈希冲突时，主要使用了链地址法同时参考了开放地址法的思想即每个桶的 8个 key val对是连续的]]></title><link>https://blog.youkuaiyun.com/xsh219/article/details/147254211</link><guid>https://blog.youkuaiyun.com/xsh219/article/details/147254211</guid><author>xsh219</author><pubDate>Tue, 15 Apr 2025 17:14:40 +0800</pubDate><description><![CDATA[链地址法：Go 通过桶和溢出桶链表的设计来解决哈希冲突。高效存储：每个桶最多存 8 个键值对，且键值对是连续存储的，减少了内存碎片。优化哈希查找：存储了键的高 8 位哈希值，加速了查找过程。]]></description><category></category></item></channel></rss>