演算法是程式的靈魂。以下從線上題庫、線上送出程式原始碼等維度推薦一些優秀的網站,希望能對題主有所幫助。
一、線上題庫
演算法學習,本質上是學習一門語言。學習語言的要領在於看、聽、說、練。對於新手、進階的資訊保安工作者來說,刷題能夠讓演算法能力得到一個質的飛躍。
1、hackerrank - https://www. hackerrank.com/
面向程式設計師、Hacker們的社交網絡,在演算法、數學、SQL、函數語言程式設計、AI等眾多不同領域為挑戰者們提供了相應的編程題目,使用者可直接線上完成挑戰。
2、Topcoder - https://www. topcoder.com/
成立於2001年,最早的線上編程競技平台之一,網站提供了一系列的演算法挑戰,參賽者可使用程式碼編輯器直接進行線上作答,比拼獲勝者可獲得競賽贊助方提供的獎勵。
3、Geeksforgeeks - https://www. geeksforgeeks.org/
Geeksforgeeks涵蓋文章、解釋和程式碼解決方案等內容,除了提供基礎的編程、演算法學習資源外,在「演算法和數據結構」主題中,提供測試專案,解題者可以在線上編輯器中進行挑戰。
4、codeforces - http:// codeforces.com/
此網站是由來自莎拉托夫州立大學Mike Mirzayanov領導的一個團隊創立和維護,是一個舉辦比賽、做題和交流的平台,網站內建blog功能,可以求助/釋出題解。
5、lintcode - https://www. lintcode.com/
支持中英雙語,匯集了演算法、數據結構,人工智能,系統設計等眾多領域的題目,網站還會舉辦編程比賽,很多演算法愛好者在這裏切磋技藝。
此外:
1、Codewars - https://www. codewars.com/
2、Leetcode(https:// leetcode.com/ )
3、Github (https:// github.com )
4、codehs - https:// codehs.com/
5、visualgo - https:// visualgo.net/
6、CoderPro - http:// coderpro.com.cn/
7、codesignal - https:// codesignal.com/
8、CodinGame - https://www. codingame.com/
9、codechef - https://www. codechef.com/
10、v2ex - https://www. v2ex.com/
11、Online Judge - https:// acm.sjtu.edu.cn/OnlineJ udge/
12、codecademy - https://www. codecademy.com/
13、programmingpraxis - https:// programmingpraxis.com/
二、線上送出程式原始碼
Online Judge系統最初使用於ACM-ICPC國際大學生程式設計競賽和OI資訊學奧林匹克競賽中的自動判題和排名,現廣泛套用於世界各地高校學生程式設計的訓練、參賽隊員的訓練和選拔、各種程式設計競賽以及數據結構和演算法的學習和作業的自動送出判斷中。
1、北大POJ - http:// poj.org/
免費的公益性網上程式設計題庫,包含3000多道饒有趣味的程式設計題,是個提供編程、演算法題目的網站,相容Pascal、C、C++、Java、Fortran等多種語言。
2、杭電HDU - http:// acm.hdu.edu.cn/
杭州電子科技大學的線上評測系統,中國最受歡迎OJ之一,題目數量多,來源廣,有很多優質好題。
3、浙大ZOJ - http:// acm.zju.edu.cn/onlineju dge/
浙江大學的線上評測系統,國內起步最早的幾個OJ之一,題目數量約2000道,開啟速度較快。
4、洛谷 - https://www. luogu.org/
創辦於2013年,是基於網頁形式的資訊學線上評測系統,它不僅僅是一個線上測題系統,還擁有強大的社區、線上學習功能。
5、RQNOJ - http://www. rqnoj.cn/
RenqingNet Online Judge,2007年8月上線,整合了題庫、測評、討論、團隊、比賽等主體的網絡平台,是國內OJ(資訊學線上測評)開放平台開發和執行的先導。
其它:
1、大視野線上測評BZOJ - http://www. lydsy.com/JudgeOnline/
2、UOJ - http:// uoj.ac/
3、福州大學 - http:// acm.fzu.edu.cn/
4、上海交大OJ - http:// acm.sjtu.edu.cn/OnlineJ udge/
5、中科大OJ - http:// acm.ustc.edu.cn/ustcoj/
6、寧波工程學院 - https:// ac.2333.moe/
7、波蘭SPOJ - http://www. spoj.com/
8、日本JOI - http://www. ioi-jp.org/index.html
9、LIGHTOJ - http://www. lightoj.com/
10、浙江工業大學OJ - http:// acm.zjut.edu.cn/
以上,一股腦推薦很多網站,但並不意味著所有的都需要花大量的時間和精力去研究。在演算法學習中,首先自己要找出自己的問題總是出在哪裏?最薄弱的環節是哪一個?只有發現自身問題,知道如何學習去提升技能,最終才會學以致用。