这是一个广泛的问题,但想知道专家的意见。 我遇到了一个文档Suffix arrays – a contest approach,还发现了一些参与者应该准备好这些数据结构的评论。现在,很多在线编程难题都有时间限制。所以我想知道应该准备好的其他数据结构/算法是什么。
答案 0 :(得分:11)
我已经竞争了大约10年,并且自己创建了一个不那么糟糕的图书馆。大多数真正优秀的竞争对手都有他们的博客,例如传奇Petr Mitrichev,他们在那里解释他们在一些竞争问题上得到的想法。阅读这些可以帮助你 - 如果你看到一个好主意实现它并存储它。 当我看到涉及它们的问题时,我将算法添加到我的库中。这样我可以验证我的实现是否正确 - 如果我已经通过了至少一个实现问题,我只添加一个算法。
这是一个列表,其中包含我的一些算法:
您会注意到上面没有提到一些最基本的算法(如BFS,DFS,Dijkstra),这是因为我没有实现它们。这些算法不能轻易地通过复制和粘贴它们的方式进行推广,一切都可行。另外我花了不到5分钟来编写它们 - 我通常只在我的库中放入难以实现的算法,或者在实现它们时很容易出错。
答案 1 :(得分:1)
查看这些featured articles @ TopCoder。他们真的很酷。
当你参与其中时,我建议参加TopCoder的编程竞赛。因为最好的改进方法是练习和练习。继续参加这样的比赛。
同样Project Euler也真的让人上瘾。
答案 2 :(得分:0)
另外,看一下Programming Challenges书,它是关于这个主题的一个很好的参考 - 它提供了在online法官的支持下成功举办编程竞赛所需的主题。