本文转载自微信公众号《roseduan写的地方》,作者roseduan。转载本文请联系roseduan写公众号的地方。今天分享的是一些数据结构和算法的项目。我在学习Go语言的时候,在掌握了基本的语法知识之后,为了巩固自己的语法知识,会去刷一些leetcode题,然后就可以一直保持解算法题的感觉,可以说是一箭双雕。那么从以下的优秀项目中,您一定能找到适合自己的项目!1.GoDSGithub地址:https://github.com/emirpasic/godsStar数量:9.9kGoDataStructures,实现了常用的数据结构,可以直接引入到实际项目中使用,包括链表,栈,哈希表,树,等,命名风格类似于Java中的类名(估计作者受Java影响很深哈哈),例如:ArrayListArrayStackHashSetTreeSetLinkedHashSetRedBlackTree当然你也可以用它来学习数据结构看看大牛的代码是怎么写的。2.go-datastructuresGithub地址:https://github.com/Workiva/go-datastructuresStar数量:6k和上面的项目类似,这也是一个用Go语言实现各种数据结构的项目,只不过它支持的数据结构更加多样化。除了一些基础的,还有一些高级的数据结构,比如BitArray,BTree,Fibonacciheap,graph,AVLtree,prefixtree等等,如果你想挑战更难的数据结构,应该可以找代码你可以在这个项目中学习或学习。3.TheAlgorithms/GoGithub地址:https://github.com/TheAlgorithms/GoStar数量:5.3k这是TheAlgorithms系列的Go语言实现。我们知道TheAlgorithms系列有很多语言版本,比如Python、Java、Go、C++、JavaScript等等。这个项目比较适合学习。基本算法的例子很多,比如数学、二分查找、排序、字符串匹配,还有一些实用的算法题目。4.Algorithm-patternGithub地址:https://github.com/greyireland/algorithm-patternStar数量:11.5k本项目主要介绍一些写题的通用模板,以及一些常见的问题,比如回答多少题,按什么顺序刷题,如何提高刷题效率等等,作者总结的模板很全面,讲解也很详细。比较适合临时刷算法和回答面试,所以即使你不是Go语言的学生,也可以通过刷题获得一些经验。项目里面也有一些书籍推荐,文档也很全。5.LeetCode-GoGithub地址:https://github.com/halfrost/LeetCode-GoStar数量:17.4k顾名思义,这是一个使用Go语言实现Leetcode问题的项目,更偏向于解决实际问题问题。目前该项目收集了600+leetcode题,每道题都有详细的解题思路和完整的代码实现。该项目还有配套的电子书和文档,可以说是非常不错了!6.hoanhan101/algoGithub地址:https://github.com/hoanhan101/algoStar数量:3k一些容易遇到的算法面试题,配有详细的代码实现,不过都是英文的。英语比较好的同学可以尝试学习。7.shady831213/algorithmsGithub地址:https://github.com/shady831213/algorithmsStar数量:504本项目实现了一些常用的算法和数据结构,如动态规划、贪心算法、图、树、堆等。代码对比简洁明了,值得学习。
