有什么适合大一计算机专业学生免费的刷题网站?
没有一个天才不在背后付出努力,没有一个成功不在失败之后出现。身处计算机专业,不努力就会被他人赶超,同学们,卷起来吧!
1、leetcode
英文网址:
中文网址:
估计leetcode(力扣)大家都很熟悉了,都被推荐烂了,很多国内外的程序员在上面刷题,难度从Easy、Medium至Hard都有,据说很多面试官都会从中挑选各种题目,号称大厂的筛码工。
我很早就知道leetcode,但是直到准备复试闲来无事的时候才在它上面刷了点儿题找感觉,发现上面的题型覆盖很广,像线段树、滑动数组、博弈论、扫描线等都应有具有,但是好像有的测试数据有点弱?有的题好像可以悄咪咪的水过去…
当然题目都是英文的,现在也有了中文社区,两个网址我都放出来了,还是建议大家首刷英文的,锻炼一下,一举两得,毕竟如果是搞ACM的话,题目都是英文的…
2、牛客网
牛客网作为国内内容超级丰富的IT题库,各种东西看得我眼花缭乱,题库+面试+学习+求职+讨论360度无死角服务,堪称"互联网求职神器"。
它好就好在不只是一个刷题的平台,还是一个交流学习的平台,发个问题贴总有热心的大佬帮助。
3、hihoCoder
网站的技术团队来自于原北大POJ的开发团队,至于POJ会在后面的篇章中介绍,反正膜拜就完事了。一些知名的大厂比如微软、百度、腾讯、网易等会在上面举办在线编程比赛,风格倒是和ACM比赛类似。
如果仅止步于此还不至于让我推荐,当初与它的结缘是因为hihoCoder每周有周赛,每月有月赛。周赛是一道题,题目比较难但是极有意思,可以很好地拓宽自己的解题思路,月赛就更厉害了,题目均出自北大等一流高校玩ACM的菊苣出题,通过这个的检验可以迅速定位到自己真实的水平,同时了解自身在解决问题过程中的不足。
这将是展示自我真实水平的绝佳机会。
4、HDU
杭电(杭州电子科技大学)的OJ大概是国内最火的几个OJ之一了,大多数ACMer应该都知道(其实我想说所有来着),勿需多说,非常多比赛都在上面,比如每年暑假的多校联赛,朝鲜、外蒙等学校的队伍都会参加,想不知道都不可能。
5、POJ
这个就是我在介绍hihocoder的时候提到过的POJ(PekingUniversityOnlineJudge),同样作为国内最火的几大OJ之一,它的建立时间更早,一些上古时期的题目也能在上面找到,同样POJ也很出名,也是我最早刷题的OJ之一。
6、Codeforces
Codeforces又被戏称为CF,是一家俄罗斯的网站,当然还是用英文食用。这里的很好的比赛,很好的题目,很好的选手,简称"三好"。
CF最吸引人的地方在于它那超级牛批的比赛系统,CF上每个用户都拥有Rating,也就是比赛积分,新用户默认为1500分,每次比赛就会在你的积分上加加减减,上面的比赛一般分为四种:Div1、Div2、Div3、EducationalCodeforcesRound。Div的比赛一般是根据积分来的,每个积分段只能参加对应的Div的比赛,Div1的比赛是里面最难的,大佬基本都在这里。EducationalCodeforcesRound则是类似ACM的比赛,提交之后立马出结果。
但是如果仅限这些也算不上超级,还有一个更有意思的是,CF的比赛还提供一个hack功能,通俗点说就是你去看别人提交的代码,然后通过提交你想出的特殊测试用例然后找出别人代码的bug,hack成功则加积分,比赛更多了很多乐趣,在hack和反hack中斗智斗勇。
不过对国内来说,和俄罗斯存在时差,一般想参加比赛的话大多数要在晚上11点以后,按照基础的2个小时比赛时间,再加上hack和测评反馈的过程,然后再刺激一下,差不多一宿就这么交代了,不过其中的乐趣不足为外人道。如果没有时间,上面的题目还是可以自己拿来做的,题目质量超级好,很能锻炼自己。
如何练习编程的手速?
如何提高编程的手速,首先要知道什么影响了手速,在我看来,影响编程手速的因素有:对开发环境(IDE)或编辑器的选择,以及对它的熟练程度,主要是快捷键的使用。首先选择一个适合自己的编辑器,推荐两个:VIM,这个不多说,最常用的文本编辑器,功能强大,高度可定制;SublimeText,现在已经是SublimeText3了,也是我最喜欢了编辑器,一开始学习使用vim,后来知道了这个,果断放弃vim了。喜欢他的原因是其具有漂亮的用户界面、海量的开源插件,可以按照你自己的需求个性化配置编辑环境。有了编辑器,当然就是练习了,这里安利的就是上面提到的网站:Learnshortcutsandcommands。专门用来练习各种工具、开发环境、编辑器的快捷键。熟练的使用快捷键能大幅提高编程速度,因为他能帮助我们摆脱对鼠标的依赖,看看那些牛逼的程序猿,谁还键盘鼠标不停的切换,太low了,人家早都摆脱鼠标了好吗!