首页 » 学习JavaScript数据结构与算法(第2版) » 学习JavaScript数据结构与算法(第2版)全文在线阅读

《学习JavaScript数据结构与算法(第2版)》12.2 用算法娱乐身心

关灯直达底部

我们学习算法并不单单是因为它是大学必修课,也不单单是因为我们想成为开发者。通过用在本书中学到的算法来解决问题,我们可以提高解决问题的能力,进而成为更棒的专业人士。

增长(解题)知识的最好方式是练习,而练习不一定是枯燥的。本节将展示一些网站,你可以访问它们并尝试从算法中获到快乐(甚至小赚一笔)。

这里列出一些有用的网站(有些不支持用JavaScript提交解答,但是我们依然可以将从本书中所学到的逻辑应用到其他语言上)。

  • UVa Online Judge(http://uva.onlinejudge.org/):这个网站包含了世界各大赛事的题目,包括由IBM赞助的ACM国际大学生程序竞赛(ICPC。若你依然在校,应尽量参与这项赛事,如果团队获胜,则有可能免费享受一次国际旅行)。这个网站包括了成百上千的题目,可以应用本书所学的算法。

  • Sphere Online Judge(http://www.spoj.com/): 这个网站和UVa Online Judge差不多,但支持用更多语言解题(包括JavaScript)。

  • Coder Byte(http://coderbyte.com/):这个网站包含了74个可以用JavaScript解答的题目(简单、中等难度和非常困难)。

  • Project Euler(https://projecteuler.net/):这个网站包含了一系列数学/计算机的编程题目。你所要做的就是输入那些题目的答案,不过我们可以用算法来找到正确的解答。

  • Hacker Rank(https://www.hackerrank.com):这个网站包含了263个挑战,分为16个类别(可以应用本书中的算法和更多其他算法)。它也支持JavaScript和其他语言。

  • Code Chef(http://www.codechef.com/):这个网站包含一些题目,并会举办在线比赛。

  • Top Coder(http://www.topcoder.com/):此网站会举办算法联赛,这些联赛通常由NASA、Google、Yahoo!、Amazon和Facebook这样的公司赞助。参加其中一些赛事,你可以获得到赞助公司工作的机会,而参与另一些赛事会赢得奖金。这个网站也提供很棒的解题和算法教程。

以上网站的另一个好处是,它们通常给出的是真实世界中的问题,而我们需要鉴别用哪一个算法解决它。通过这样的方式也能让我们明白本书中的算法并非局限于学术,而是能应用到现实问题上。

如果你想从事技术工作,强烈推荐你创建一个免费的GitHub(https://github.com)账号,你可以将上述网站的解答代码提交上去。如果你没有任何专业经验,GitHub可以帮助你建立一个作品集,还会对你找到第一份工作有帮助!