查看原文
其他

刷了几千道算法题,这些我私藏的刷题网站都在这里了!

GitHubDaily 2019-12-26

以下文章来源于Python空间 ,作者Rocky0429

公众号关注 “GitHubDaily
设为 “星标”,每天教你学编程

作者 | Rocky0429
来源 | Python空间
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活...


然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网站放出来,让我们一起爽!


刷题,是这个世界上最有意思的事儿!

当然刷题不能乱爽,你要知道刷题要干嘛,是找工作面试、研究生复试机试,是参加程序设计竞赛还是为了提高自己,在这里我将这些分为三类:收割 offer 版、ACM 竞赛版和提高版。


0x00 收割 offer 版

不管是找工作笔试面试白板试进大厂,还是研究生参加初试复试机试,数据结构和算法都是绕不过去的坎,刷题就成了很多人的需求,快来看看下面这些网站,变身刷题机器,收割 offer 吧!

1、leetcode

英文网址:https://leetcode.com/中文网址:https://leetcode-cn.com/



估计 leetcode(力扣)大家都很熟悉了,都被推荐烂了,很多国内外的程序员在上面刷题,难度从 Easy、Medium 至 Hard 都有,据说很多面试官都会从中挑选各种题目,号称大厂的筛码工。

我很早就知道 leetcode,但是直到准备复试闲来无事的时候才在它上面刷了点儿题找感觉,发现上面的题型覆盖很广,像线段树、滑动数组、博弈论、扫描线等都应有具有,但是好像有的测试数据有点弱?有的题好像可以悄咪咪的水过去...


当然题目都是英文的,现在也有了中文社区,两个网址我都放出来了,还是建议大家首刷英文的,锻炼一下,一举两得,毕竟如果是搞 ACM 的话,题目都是英文的...


2、hihoCoder

网址:https://hihocoder.com



网站的技术团队来自于原北大 POJ 的开发团队,至于 POJ 会在后面的篇章中介绍,反正膜拜就完事了。一些知名的大厂比如微软、百度、腾讯、网易等会在上面举办在线编程比赛,风格倒是和 ACM 比赛类似。

如果仅止步于此还不至于让我推荐,当初与它的结缘是因为 hihoCoder 每周有周赛,每月有月赛。周赛是一道题,题目比较难但是极有意思,可以很好的拓宽自己的解题思路,月赛就更厉害了,题目均出自北大等一流高校玩 ACM 的菊苣出题,通过这个的检验可以迅速定位到自己真实的水平,同时了解自身在解决问题过程中的不足。

这将是展示自我真实水平的绝佳机会。


3、牛客网

网址:https://www.nowcoder.com/



牛客网作为国内内容超级丰富的 IT 题库,各种东西看的我眼花缭乱,题库+面试+学习+求职+讨论 360 度无死角服务,堪称"互联网求职神器"。它好就好在不只是一个刷题的平台,还是一个交流学习的平台,发个问题贴总有热心的大佬帮助,别问我怎么知道,我才不要说我也给人回答过问题...

说句题外话,我与牛客网的结缘还是因为...它上面有考研真题,我刷来着...



4、计蒜客

网址:https://www.jisuanke.com/



计蒜客这个网站可能很多人不知道,他也有可以刷题的题库,也会定期举办比赛,当年和计蒜客有的交集也就是参加计蒜客举办的"计蒜之道"的线上比赛,还赢得过 T 恤,现在好像还在我家放着...

这么多年还记得这个网站的原因,是因为当年在某乎上关注了他们的 CEO,然后竟然被反关,着实把当年的我惊着了...




0x01 ACM 竞赛版

PS:虽然这一部分的标题为 ACM 竞赛版,也只是因为这些在学校搞 ACM 的同学用的比较多,实际上所有的人都可以在下面这些网站上刷题,题目的质量和广度都是顶呱呱的,男女老少咸宜。


搞 ACM 的时候知道了很多 OJ(Online Judge),比如下图(当然实际的数量肯定远远多于图中所展示的这些):


5、HDU

网址:http://acm.hdu.edu.cn/



杭电(杭州电子科技大学)的 OJ 大概是国内最火的几个 OJ 之一了,大多数 ACMer 应该都知道(其实我想说所有来着),勿需多说,非常多比赛都在上面,比如每年暑假的多校联赛,朝鲜、外蒙等学校的队伍都会参加,想不知道都不可能。

现在上面大概有接近 6k 的题量,网上有很多的刷题顺序,刷题指南,感兴趣的玩玩儿...


6、POJ

网址:http://poj.org/



这个就是我在介绍 hihocoder 的时候提到过的 POJ(Peking University Online Judge),同样作为国内最火的几大 OJ 之一,它的建立时间更早,一些上古时期的题目也能在上面找到,同样 POJ 也很出名,也是我最早刷题的 OJ 之一。

现在上面有 3k+ 的题量,关于 POJ 的刷题指南网上更是很多,同样欢迎去玩儿...


7、SDUT


网址:https://acm.sdut.edu.cn/



这个是我打开次数最多,刷题次数最多的 OJ,是我刷题之路开始的地方 -- 我本科母校 SDUT 的 OJ 平台。虽然我们学校不出名,但是我们集训队做东西是认真的,上面有接近 3k 的题量,并且在逐渐增多,简单题多一些,很适合刷题。

欢迎大家注册,多多刷题,我们集训队多年一直秉持开放的态度,欢迎多多交流...


8、其它 OJ

最后附带一些其它同样优秀的 OJ 平台:

国内:
ZJU(浙大): https://zoj.pintia.cn/homeUSTC(中科大):http://acm.ustc.edu.cn/ustcoj/FZU(福大):http://acm.fzu.edu.cn/HIT(哈工大):http://acm.hit.edu.cn/



国外:
URAL:http://acm.timus.ru/SPOJ:https://www.spoj.com/




0x02 提高版

这一部分推荐的网站,非常有意思,如果想提高自己,体验比赛的快感,非常建议尝试。

9、Codeforces

网址:https://codeforces.com/


Codeforces 又被戏称为 CF,是一家俄罗斯的网站,当然还是用英文食用。这里的很好的比赛,很好的题目,很好的选手,简称"三好"。

CF 最吸引人的地方在于它那超级牛批的比赛系统,CF 上每个用户都拥有 Rating,也就是比赛积分,新用户默认为 1500 分,每次比赛就会在你的积分上加加减减,上面的比赛一般分为四种:Div1、Div2、Div3、Educational Codeforces Round。Div 的比赛一般是根据积分来的,每个积分段只能参加对应的 Div 的比赛,Div1的比赛是里面最难的,大佬基本都在这里。Educational Codeforces Round 则是类似 ACM 的比赛,提交之后立马出结果。

但是如果仅限这些也算不上超级,还有一个更有意思的是,CF 的比赛还提供一个 hack 功能,通俗点说就是你去看别人提交的代码,然后通过提交你想出的特殊测试用例然后找出别人代码的 bug,hack 成功则加积分,比赛更多了很多乐趣,在 hack 和反 hack 中斗智斗勇。

不过对国内来说,和俄罗斯存在时差,一般想参加比赛的话大多数要在晚上 11 点以后,按照基础的 2 个小时比赛时间,再加上 hack 和测评反馈的过程,然后再刺激一下,差不多一宿就这么交待了,不过其中的乐趣不足为外人道。如果没有时间,上面的题目还是可以自己拿来做的,题目质量超级好,很能锻炼自己。


10、Topcoder

网址:https://www.topcoder.com/



Topcoder 据说是世界上规模最大的编程网站,如果这样的话那这个 Top 就可以理解了,Top 的 coder 丫,这个我基本上没用过,可能是因为我不 Top,只能仰望...

想起它来的原因还是因为现在每次有比赛的时候都会给我发邮箱,搞得我想忘了它都不成...



0x03 写在之后


虽然想写的尽量轻松些,不要让文章看起来太无聊,但在最后还是想认真的说一句:

刷题不要单纯的为了追求做题的数量
还是要以学会为目的
并且学以致用

希望大家永远记住你的目的是什么,关于如何刷题以后我会认真的再出篇文章,希望来个"在看"支持一下丫...

-----------------------
推荐阅读:
在《我的世界》里从零打造一台计算机有多难?复旦本科生大神花费了一年心血
除了 P 站,程序员在摸鱼时还喜欢上这些网站...
作为一名程序员,我都收集了哪些好玩的生成器?
这款超强搜索神器,我爱了!
19 个恶搞 Linux 命令

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存