当你成功的时候,你说的所有话都是真理。
程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦
国外
TopCoder是最早的在线编程竞技平台之一,该网站提供了一系列的算法挑战,在这里,你可以:
使用他们的代码编辑器直接进行在线作答。
参加该网站举办的SRMs挑战项目。该比赛将会在每月定期举办,作为参赛者,你需要以最快的速度,与众多其他的编程挑战者进行比拼。
他们还会赞助竞赛,如果你写出最好的解决方案,就可以拿到奖励!
HackerRank侧重于“计算机科学”主题,在算法、数学、SQL、函数式编程、AI等众多不同领域为挑战者们提供了相应的编程题目。在这里,你可以:
直接在线完成挑战在线。
HackerRank针对每一项挑战都专门成立了讨论区与排行榜。而它提供的大多数挑战都来自于社论,让你了解挑战内容的同时,思考如何提出解决方案。并且除了挑战对应的这篇社论,你目前无法查看其他挑战者在HackerRank上的解决方案。
LintCode收集了网上一些最常见、最高频的编程题目,支持中英双语:相比其他的一些网站,LintCode的编程挑战覆盖的领域更多,包括算法、数据结构,人工智能,系统设计等众多领域。
如果你在准备软件工程面试,在LintCode刷题是很有帮助的,它的每道题都有详细的解答,能帮助你更好地理解。
LintCode有《CrackingtheCodingInterview》《剑指offer》等算法学习书籍的配套习题库,可供初学者练习。
LintCode还有自己举办的编程比赛,很多算法爱好者会在这里PK,切磋技艺。
在在线编辑器中进行挑战。
在该网站的代码解决方案中,你会看到解题者是如何将一个复杂的问题分解成更简单的部分,并提出代码解决方案的。
如果你正在准备一个软件工程的面试,也可以用这个网站准备和复习更难的算法问题。
Coderbyte提供了200多种编程挑战。在这里,你可以:
除了编程挑战之外,Coderbyte还提供算法和数据结构、Web开发等编程训练营的预备课程以及一系列关于面试准备的相应课程,被很多顶级编程训练营所推荐。
Codewars提供了大量由他们自己的社区提交和编辑的编程挑战,在这里,你可以:
使用多种编程语言像打游戏升级一样进行挑战。
通过在线编辑器直接完成每项挑战。
通过实战训练来提升编程开发技能。
查看关于每个挑战的讨论以及每个用户解决方案。
通过挑战来获得分数和排名。
CodeFights提供了一组编程挑战,在这里,你可以:
在专门的用户挑战论坛中参与讨论。
与“机器人”比拼!
CodinGame这个网站很特别,他跟一些竞争性编程网站有所不同。它不是简单地通过生成一组输出来实现编程挑战,而是以玩游戏的方式通过在线编程完成相应挑战。这是一个很棒的网站,有些游戏非常有趣,并且游戏界面和图形设计非常精美。
CodeChef是一家印度的编程竞赛网站,它提供了数百个挑战供你选择。在这里,你可以:
通过在线编辑器来进行编程。
根据自身的编程能力,选择不同技术等级不同类别的编程挑战。
在他们建立的程序员社区中进行交流并为论坛编写教程。
参加CodeChef的编程竞赛。
Codeforces是一家总部位于俄罗斯的竞赛编程网站,它会定期举办在线比赛,并且竞赛选手是世界上一些最优秀的程序员。他们的挑战通常需要用到高等数学和算法,如果你是一个编程新手,他们的挑战很可能对你来说难度比较大。