<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jgddfs的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jgddfs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jgddfs]]></copyright><item><title><![CDATA[数据结构大作业——家谱管理系统（超详细！完整代码！）]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156874535</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156874535</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 23:03:06 +0800</pubDate><description><![CDATA[家谱管理系统通常以树形结构为基础，核心功能包括成员添加、删除、查询、修改以及家族关系展示。采用面向对象设计模式，结合文件存储实现数据持久化。实际开发时可根据具体需求调整功能模块，建议采用MVC架构分离数据、控制和视图层。完整实现代码需考虑异常处理、输入验证等边界情况。]]></description><category></category></item><item><title><![CDATA[《C++进阶之STL》【哈希表】]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156874428</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156874428</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:56:46 +0800</pubDate><description><![CDATA[默认情况下，STL使用std::hash模板生成哈希值。int id;]]></description><category></category></item><item><title><![CDATA[【鼠鼠优选算法-双指针】003：快乐数 & 004：盛水最多的容器]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156874372</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156874372</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:53:03 +0800</pubDate><description><![CDATA[快乐数是指一个正整数，将其替换为各个位上的数字的平方和，重复这个过程直到数字变为1，或者进入无限循环但始终变不到1。如果最终结果为1，则是快乐数。，表示一系列垂直线的长度。找出两条线，与x轴共同构成容器，使得容器能盛最多的水。给定一个非负整数数组。]]></description><category></category></item><item><title><![CDATA[深入理解 C++ 哈希：从概念到实战应用]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156874264</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156874264</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:46:54 +0800</pubDate><description><![CDATA[哈希是一种将任意长度的数据映射到固定长度值的技术，核心目标是实现高效的数据存储与检索。哈希函数将输入（如字符串、对象）转换为唯一的哈希值（通常为整数），该值作为数据的索引或标识。哈希表是哈希的典型应用，通过数组和哈希函数实现键值对的快速存取。通过合理选择哈希函数和冲突解决策略，C++ 哈希能在绝大多数场景下提供高效的数据操作能力。当冲突发生时，按某种规则（如线性探测、二次探测）寻找下一个空闲槽位。负载因子（元素数/桶数）影响性能。每个槽位维护一个链表，冲突元素直接添加到链表中。]]></description><category></category></item><item><title><![CDATA[《算法闯关指南：动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数，02.三步问题]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156874245</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156874245</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:44:49 +0800</pubDate><description><![CDATA[动态规划是解决递归问题的高效方法，尤其适用于斐波拉契数列及其变种问题。两个问题本质都是斐波拉契数列的三阶扩展，区别在于初始条件和问题背景。问题描述：小孩上台阶，每次可以跨1、2或3步，求到达第n阶的方法数。对于大规模n，需要注意数值溢出问题，及时进行模运算。]]></description><category></category></item><item><title><![CDATA[数据结构与算法 - 网络流基础：最大流问题的Ford-Fulkerson算法]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156874187</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156874187</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:41:58 +0800</pubDate><description><![CDATA[Ford-Fulkerson算法是解决最大流问题的经典方法，通过不断寻找增广路径来逐步增加流量，直到无法找到新的增广路径为止。该算法适用于有向图，其中每条边有容量限制，目标是找到从源点到汇点的最大流量。]]></description><category></category></item><item><title><![CDATA[动态规划 —— dp 问题-粉刷房子]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156874143</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156874143</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:37:26 +0800</pubDate><description><![CDATA[初始化dp[0][j] = cost[0][j] 对于每个房子i从1到n-1： 对于每种颜色j从0到k-1： 找到前一个房子i-1中所有不等于j的颜色c的最小dp值 dp[i][j] = cost[i][j] + min_value。用dp[i][j]表示第i个房子粉刷第j种颜色时的最小成本。状态转移方程为： dp[i][j] = cost[i][j] + min(dp[i-1][c])，其中c ≠ j。要求相邻房子颜色不同，求最小总成本。最后结果是min(dp[n-1][j])对所有j。]]></description><category></category></item><item><title><![CDATA[【算法】前缀和(一)原理]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156874082</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156874082</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:35:41 +0800</pubDate><description><![CDATA[前缀和（Prefix Sum）是一种预处理技术，用于高效计算数组或序列中某个区间的累加和。通过预先计算并存储从起始位置到每个位置的累加值，可以将区间和的查询时间复杂度从。prefix[i] = \sum_{k=0}^{i-1} nums[k] \quad \text{（通常从 } i=1 \text{ 开始）}利用前缀和数组，区间。]]></description><category></category></item><item><title><![CDATA[【计算机算法与设计（8）】最小生成树算法(Kruskal 算法和 Prim 算法)]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873965</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873965</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:26:31 +0800</pubDate><description><![CDATA[Kruskal 算法适合稀疏图，时间复杂度为 ( O(E \log E) )，主要由排序步骤决定。Prim 算法适合稠密图，使用二叉堆实现时时间复杂度为 ( O(E \log V) )，使用斐波那契堆可优化至 ( O(E + V \log V) )。初始化一个空的边集合作为生成树。依次检查排序后的边，如果加入当前边不会形成环路，则将其加入生成树集合。从队列中取出权重最小的边，将其加入生成树，并将新加入顶点的所有邻接边加入队列。算法从任意顶点开始，每次选择连接生成树与非生成树顶点的最小权重边。]]></description><category></category></item><item><title><![CDATA[Leetcode 98 从链表中移除在数组中存在的节点]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873928</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873928</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:24:50 +0800</pubDate><description><![CDATA[题目要求从给定的链表中移除所有在给定数组中存在的节点。需要遍历链表，检查每个节点的值是否在数组中，若存在则移除该节点。关键在于如何高效处理节点的删除操作，尤其是头节点的特殊情况。采用虚拟头节点（dummy node）简化删除操作，避免单独处理头节点。遍历链表时维护前驱节点（prev）和当前节点（curr），遇到需删除的节点时更新前驱节点的指针。链表：1 -> 2 -> 6 -> 3 -> 4 -> 5 -> 6。]]></description><category></category></item><item><title><![CDATA[马年“码”上发力：用Manacher“马拉车”算法，拉平最长回文难题]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873903</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873903</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:22:38 +0800</pubDate><description><![CDATA[Manacher算法是一种高效查找字符串中最长回文子串的线性时间算法。其核心思想是通过对称性和动态规划避免重复计算，将时间复杂度优化至O(n)。该算法特别适用于需要高频查询回文场景，如DNA序列分析或文本处理。理解其镜像原理和边界维护机制是掌握的关键。将原始字符串插入特殊字符（如#）以统一处理奇偶长度回文。例如，"abc"变为"#a#b#c#"。]]></description><category></category></item><item><title><![CDATA[【基础算法总结】哈希表/set/map篇]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873840</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873840</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:20:05 +0800</pubDate><description><![CDATA[哈希表（Hash Table）是一种基于键值对存储的数据结构，通过哈希函数将键映射到表中的特定位置以实现高效查找。平均时间复杂度为O(1)，最坏情况下为O(n)。： 结合哈希表记录前缀和出现次数，用于子数组求和问题（如LeetCode 560题）。： 将字符串排序后作为键，原字符串作为值存入映射（如LeetCode 49题）。哈希集合用于存储唯一元素，常用于去重或快速查找。哈希映射存储键值对，支持高效插入、删除和查找。： 利用集合特性，遍历时检查元素是否已存在。]]></description><category></category></item><item><title><![CDATA[【数据结构手札】顺序表实战指南（四）：头插 | 头删]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873788</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873788</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:17:04 +0800</pubDate><description><![CDATA[顺序表是一种线性表的存储结构，元素在内存中连续存放。头插和头删是顺序表的两种基本操作，涉及在表首位置插入或删除元素。内存管理：频繁的头插/头删可能导致大量数据移动，影响性能。批量操作：如需连续头插多个元素，可先收集所有元素，一次性移动现有数据后插入。扩容策略：动态顺序表在插入前应检查容量，必要时按一定策略（如加倍）扩容。替代结构：对于以头部操作为主的场景，链式结构（如链表）可能更合适。头删操作移除顺序表首位置的元素，后续元素需要前移以保持连续性。预留空间：若预期频繁在头部操作，可预留部分空间减少移动次数。]]></description><category></category></item><item><title><![CDATA[【C语言】排序算法——快速排序详解（含多种变式）！！！]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873692</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873692</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:14:55 +0800</pubDate><description><![CDATA[快速排序是一种分治算法，通过选择一个基准值（pivot）将数组分为两部分：小于基准值的元素和大于基准值的元素。递归地对这两部分进行排序，最终完成整个数组的排序。JDK中Arrays.sort()采用的优化版本，使用两个基准值提高效率。处理大量重复元素时更高效，将数组分为小于、等于和大于基准值三部分。通过随机选择基准值避免最坏情况时间复杂度。减少递归调用栈深度，避免栈溢出。]]></description><category></category></item><item><title><![CDATA[【数据结构手札】顺序表实战指南（五）：查找 | 任意位置增删]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873646</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873646</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:12:36 +0800</pubDate><description><![CDATA[插入前需检查表是否已满，并确保插入位置合法（$0 \leq index \leq length$）。删除需检查表是否为空，并确保删除位置合法（$0 \leq index < length$）。删除后需将后续元素前移。：最坏情况下（删除表头元素）为 $O(n)$，平均 $O(n)$。遍历顺序表，返回第一个匹配值的索引，时间复杂度为 $O(n)$。：最坏情况下（插入到表头）为 $O(n)$，平均 $O(n)$。直接通过下标访问顺序表元素，时间复杂度为 $O(1)$。查找操作通常分为按值查找和按索引查找。]]></description><category></category></item><item><title><![CDATA[【DFS】羌笛何须怨杨柳，春风不度玉门关 - 4. 二叉树中的深搜]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873607</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873607</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:10:10 +0800</pubDate><description><![CDATA[DFS 是二叉树遍历和问题解决的核心方法之一。递归实现简洁直观，而迭代实现更适合处理大规模数据。掌握 DFS 的三种遍历方式及其变种，能够高效解决许多二叉树相关问题。]]></description><category></category></item><item><title><![CDATA[leetCode-热题100-二叉树合集（JavaScript)]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873587</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873587</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:08:46 +0800</pubDate><description><![CDATA[【代码】leetCode-热题100-二叉树合集（JavaScript)]]></description><category></category></item><item><title><![CDATA[Python缠论分析完整指南：如何用代码实现自动化交易系统]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873506</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873506</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 22:04:50 +0800</pubDate><description><![CDATA[缠论是一种基于价格走势形态和动力学原理的技术分析方法，通过分型、笔、线段、中枢等结构判断市场趋势。在Python中实现缠论分析需要结合K线数据处理、形态识别和交易信号生成。]]></description><category></category></item><item><title><![CDATA[1小时搭建日志分析原型：Python+logging+可视化]]></title><link>https://blog.youkuaiyun.com/jgddfs/article/details/156873394</link><guid>https://blog.youkuaiyun.com/jgddfs/article/details/156873394</guid><author>jgddfs</author><pubDate>Mon, 12 Jan 2026 21:59:42 +0800</pubDate><description><![CDATA[以上方案可在60分钟内完成基础搭建，后续可根据需要扩展日志存储（如Elasticsearch）、增加机器学习异常检测等高级功能。可视化部分建议优先使用Plotly或Pyecharts实现交互式图表。]]></description><category></category></item></channel></rss>