- 博客(6)
- 收藏
- 关注
原创 软考算法题实战:回溯法与大根堆堆排序
回溯法真的是 O(n²) 吗?堆排序里 R[0] 哨兵到底在防什么?我把 N 皇后和堆排序都编译运行了一遍——N 皇后的解个数序列与公认结果完全一致,堆排序把乱序跑成了升序,还故意把哨兵改错看它会怎样。这篇博客记录了我从“眼睛会了”到“手真的动了”的完整过程,附完整代码、实测输出和踩坑记录。
2026-10-11 12:06:42
315
原创 从软考真题看懂状态模式,以及它和策略模式的分界线
状态模式和策略模式的类图几乎一样,怎么区分?我用一道 2011 年软考真题——纸巾售卖机,从"状态变量 + if-else"的反面写法写到标准状态模式填空,最后把两者的边界彻底理清。记录我踩过的坑。
2026-10-04 14:22:31
325
原创 从基站覆盖真题,理解贪心算法为何在这里成立
上一轮我复盘动态规划时,对「求最优 = 填 DP 表」有了执念。直到做到软考这道「基站覆盖」真题:要覆盖一长串房子、求最少基站,我第一反应是上动态规划,结果标准答案却是一次从左到右的贪心扫描就出来了。这篇不空讲概念,从一个真实的「第一版写错 → 再改成对」的过程切入:先踩了"把覆盖半径当成半程"的坑,再讲清为什么这里局部最优能一贯等于全局最优,最后重点掰开《贪心算法 vs 动态规划》——一句话判据,用排序 + 覆盖右端指针的 C++ 实现跑通验证,给复试导师看一份"会思考、能动手、懂边界"的算法笔记。
2026-09-13 22:03:28
309
原创 观察者模式:从“实现接口”到“主动注册”,我漏掉的那一行代码
观察者模式就像微信公众号——你写好了“接收推送”的能力(实现接口),但如果没有点“关注”(主动注册),就永远收不到消息。这篇博客从一个软考真题出发,记录了我从“想当然”到“动手验证”的完整过程。
2026-09-06 23:01:27
168
原创 O(2^n) 到 O(n²):软考动态规划「钢条切割」全解析
本文以软考钢条切割题为例,详细剖析了动态规划从朴素递归到优化实现的演进过程。文章首先展示了直接递归实现的时间复杂度问题,进而引入记忆化搜索和自底向上两种优化方案,通过代码对比和手动演算揭示了动态规划的核心特征:最优子结构和重叠子问题。重点分析了循环顺序、边界条件等易错点,并提供了三种实现方式的时间复杂度对比(朴素递归O(2^n) vs 优化方案O(n²))。文章最后总结了动态规划题目的识别信号和设计要点,强调状态定义和转移方程的重要性,为理解动态规划提供了从理论到实践的完整路径。
2026-08-16 22:05:29
209
原创 从一道软考填空题总结的单例模式5种写法演进与踩坑实录
软考下午题中,单例模式的考查重点不是“私有构造”,而是“线程安全的访问点”。这篇文章以一道完整真题为例,从填空答案出发,逐步展示“懒汉式(非安全)→ synchronized方法 → 双重检查锁 → 静态内部类”的演进过程,并附上多线程测试类的验证结果。适合正在备考软考软件设计师、想深入理解单例模式的同学。
2026-08-02 22:52:44
316
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅