所有文章
poj 1979 Red and Black
基于POJ 1979 Red and Black问题的深度优先搜索算法解决方案。该算法通过递归遍历二维网格,统计从起始位置可达的所有黑色格子数量。程序采用DFS核心思想,结合方向数组实现四个方向的移动判断,有效解决了路径搜索和区域计数问题,是ACM竞赛中的经典图论题目。
2018年6月28日
LeetCode题解:最长回文串之manacher算法
Manacher算法又称马拉车算法,可将最长回文串求解复杂度降至O(N)。该算法通过插入特殊符号处理奇偶长度回文串,利用对称性质优化计算过程。核心思想是以当前最大回文串边界为基础,通过中心点对称规律减少重复比较,显著提升性能。配合Go语言实现,有效解决传统暴力解法超时问题。
2018年4月17日
无缓冲通道引发的BUG
Go语言无缓冲通道在并发编程中容易引发阻塞问题,特别是在MapReduce框架的容错处理阶段。无缓冲通道要求发送方和接收方必须同时就绪才能完成操作,否则会导致goroutine阻塞。通过调整WaitGroup完成顺序,将wg.Done()置于通道发送操作之前,可有效避免因接收方未准备就绪而造成的死锁问题。
2018年4月11日
分布式初探 Distributed 101
分布式系统通过多机协同处理突破单机资源限制,解决存储和计算压力问题。系统需处理存储、传输、计算三大核心挑战,具备扩展性、高性能和容错性特征。设计采用分治和复制策略,通过数据分区实现并行处理,利用副本提高可用性和性能。物理距离和节点数量构成系统限制,需要在一致性、可用性和分区容错性间权衡。
2018年4月6日
0交换排序 Google笔试题
0交换排序是Google经典笔试题,要求在仅能与0进行交换的限制条件下对数组排序。算法核心思路是先将0置于首位,然后通过三次交换操作循环将每个元素归位。该解决方案时间复杂度O(n),空间复杂度O(1),展示了巧妙的数组操作技巧和约束条件下的优化思维。
2018年3月29日
在 Gin 中实践TDD测试API
在Gin框架中实践TDD测试驱动开发,通过优先编写测试来提升API代码质量和稳定性。TDD确保代码健壮性,减少Bug产生,支持系统重构和代码优化。文章介绍Go语言中使用httptest进行端到端API测试的具体实现方法,包含测试准备、请求构造和响应验证的完整流程。
2018年3月26日
Go下解析XML文档时的编码问题
Go语言解析XML文档时处理非UTF-8编码的技术方案。通过使用xml.Decoder替代xml.Unmarshal方法,并设置CharsetReader函数来正确处理不同字符编码的XML文档,解决RSS解析过程中遇到的编码转换问题,确保数据准确解析和显示。
2018年3月10日
使用tensorflow的Object Detection API做物体识别
学校有一个实验要做柑橘识别,因此想要用 tensorflow 用自己的训练集训练出一个只识别柑橘的模型出来,故有下文,别的物体识别也可以使用这种方式自己找数据去训练
2018年2月6日
SQL基础简明总结
SQL基础简明总结涵盖数据库核心操作技术,包括INNER JOIN、SELF JOIN、OUTER JOIN等连接查询方法,UNION合并查询结果,INSERT INTO数据插入,CREATE/DROP/ALTER表结构操作,视图创建与事务管理。详细说明主键、外键、唯一约束、检查约束等数据库完整性约束机制,以及索引优化和触发器应用,为数据库开发提供完整的技术参考指南。
2017年11月4日
