所有文章

poj 1979 Red and Black

基于POJ 1979 Red and Black问题的深度优先搜索算法解决方案。该算法通过递归遍历二维网格,统计从起始位置可达的所有黑色格子数量。程序采用DFS核心思想,结合方向数组实现四个方向的移动判断,有效解决了路径搜索和区域计数问题,是ACM竞赛中的经典图论题目。

2018年6月28日

通过Go HTTP Client的报错看标准库https请求

在用 Go 自带的 http client 进行默认 Get 操作的时候,发现如下错误

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的Object Detection API做物体识别

学校有一个实验要做柑橘识别,因此想要用 tensorflow 用自己的训练集训练出一个只识别柑橘的模型出来,故有下文,别的物体识别也可以使用这种方式自己找数据去训练

2018年2月6日

SQL基础简明总结

SQL基础简明总结涵盖数据库核心操作技术,包括INNER JOIN、SELF JOIN、OUTER JOIN等连接查询方法,UNION合并查询结果,INSERT INTO数据插入,CREATE/DROP/ALTER表结构操作,视图创建与事务管理。详细说明主键、外键、唯一约束、检查约束等数据库完整性约束机制,以及索引优化和触发器应用,为数据库开发提供完整的技术参考指南。

2017年11月4日