1. HackerRank
该网站在编程界非常出名,从初级到高级,开发人员到招聘经理等大多数程序相关岗位的人都知道这个网站。
hackerrank上有很多算法题,难度从低到高,除此之外,还有各种算法和数据结构(甚至是SQL)的题。你可以直接在上面编写代码,直接运行并查看结果,还可以查看评论看看看其他人都是如何解题的。
在面试过程中,也有一些企业让我来这个网站刷题,因此,你可以经常到这刷题巩固知识点。
网站地址:https://www.hackerrank.com
2. TopCoder
TopCoder是最早的程序设计比赛网站之一,其中就有算法挑战赛,你可以使用其代码编辑器在线进行操作。单轮比赛每月在特定时间进行几次,编码员相互竞争,根据分数和解题时间排名。
在TopCoder上排名靠前的用户都是非常优秀的程序员,并且是经常参加各种编程竞赛的人。排名最高的人将拥有自己的博客,在那里他们可以写有关编程竞赛、算法、数学等所有他们想和大家分享的东西。
网站地址:https://www.topcoder.com/challenges
3.Geekforgeeks
如果你在执行算法时遇到难题,在Google上搜索解决方案时,你可能会经常看到以下页面。
这个页面说实话看起来有点丑,分类也不是很好,但是,它有许多常见算法练习的解决方案。每个解决方案包括许多不同的方法,以及每种方法的复杂性,这是一种非常有帮助的网站。
网站地址:https://practice.geeksforgeeks.org
4. Leetcode
另一个很受欢迎的算法培训网站是Leetcode。这个网站的算法数量并不亚于hackerrank,它主要有3个难度级别,分别是Easy / Medium / Hard(有些简单的问题也非常困难)。
算法面试都是从简单的问题开始,中级问题则是用于评估你的个人能力,困难问题则是为Facebook/谷歌面试而准备的,这个网站还有一个优秀的地方是它可评估你代码的性能,看看你的代码运行的快还是慢,是否可以进行优化等。
网站地址:https://leetcode.com
5.Daily Coding Problem
和其他网站不同的是,Daily Coding Problem上面没有习题列表,但是,如果你输入自己的电子邮箱,他会每天向你发送一种算法面试题给你尝试解答。题型同样也根据难易程度划分,Amazon / Google等公司的一些面试题就出自这里,假如你购买了高级套餐,就会获得解决方案。
网站地址:https://www.dailycodingproblem.com
6.Exercism.io如果说以上网站是让你刷算法题的网站,那么Exercism就是让你学习编程的好地方。
尽管Exercism.io上面也有很多习题,但这些练习并不侧重于算法,而是侧重于编程语言的某一方面:
- 使用if / else循环
- 日期处理,字符串处理
- 如何处理错误,编写异步代码等
我使用此网站来了解有关Golang和Elixir的更多信息,如果你已经编程了一段时间,想学习一种新的语言,学习一种新的思维方式,那就去Exercism.io吧!
网站地址:https://exercism.io