讀古今文學網 > 學習JavaScript數據結構與算法(第2版) > 12.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可以幫助你建立一個作品集,還會對你找到第一份工作有幫助!