刷题是计算机专业学生学习过程中一个非常重要的环节,通过刷题,学生可以巩固基础知识,提高解题能力,增强编程能力,准备面试和考试以及增强自信心。因此建议计算机专业的学生要多做题,勤刷题,提高自己的学习效果和能力。
第一阶段:基础刷题型
适合大一大二的学生,尤其是非科班跨专业的小伙伴。
Programming by Doing
这个网站叫边做边编程,网站一打开进去就看到这句话:”学习的最好方法就是去做”,成功激励到了我。网站上的题目超级基础,非常适合小白。
新手必刷编程50题
这是LintCode上的一份在线OJ,题目由ACM同牌选手精心编撰,出题核心在于从基本编程知识点学起,覆盖刷题过程中最常见的算法与数据结构,主要包括基本数据类型、判断语句、数组与循环、字符串与循环、栈与队列、简单递归六大阶段。刷完这份题目,你可能会对算法与数据结构有一个更全面的理解。
Dotcpp
这个网站的题第一页基本都非常简单,非常适合入门的人刷,而且全中文,界面简单,即便做不出来,每个题还有很多题解可以参考,对自己查错以及拓宽思路都非常有帮助。而且还有小型比赛,这里的比赛都很亲民,适合个人提升编程水平参加。
第二阶段:进阶型
适合毕业求职找工作、考研、复试准备篮桥杯等刷算法题的小伙伴。
Leetcode
这也是个非常出名的刷题网站了,讨论区人比较多,题目覆盖也比较全面,不过带锁的题目比较多,很多大厂算法题都从其中选择,重点刷完hot100,程序员都知道Leetcode,面试必刷,刷完300道题,大厂的手撕算法基本没问题。
牛客网
集笔面试系统题库、课程教育、社群交流、招聘内推于一体的招聘类网站,各个公司的面试题和面经分享,找工作前认真刷一刷,一定会有很大收获,拿到心仪的offer。
第二阶段补充篇
数据结构分析网站。数据结构和算法是计算机专业的基础课程,更是大厂笔试和面试考察的重点,对于初学数据结构的小伙伴,大多都会感觉到很难,很抽象。
VISUAL GO
这是一个数据结构和算法动态可视化的网站,支持多种语言,由新加坡国立大学提供,内容非常丰富,不仅有排序、链表、哈希表图等基础内容,还有并查集,线段树,后缀树等进阶内容。
Data Structure Visualizations
这是由美国旧金山大学计算机系出品的数据结构与算法可视化学习网站,通过这个网站可以很清晰的看到整个算法的运行过程。支持的数据结构也很丰富,有栈、队列、二叉树、红黑数、AVL数、Hash、B数、B+数等。
Algorithm-visualizer
这是一个讲解各种算法的网站,支持各种代码,包括js、java、和C++。这个网站最大的特点是,不仅有动画的演示,而且控制台会输出整个执行过程,能帮助大家更好的理解算法。
Vamonos
有常用的数据结构与算法的演示,栈、队列,二叉数、红黑数、B数、拓扑排序、广度优先算法
btree-js
这是个专门演示B数的网站,我们可以在上面插入自定义的数据来模拟B数的构建过程。
第三部分:大神比赛篇
CODECHEF
网站提供多种难度的编程题,难度从入门、简单、中等到挑战都有,同时还会不定期举办竞赛,获胜者会有奖金奖励。
CODEFORCES
这是一个俄罗斯的OJ(Online Judge), 上面会有各种各样的题目和各种各样的比赛,用户可以阅读上面的题目,写出相应的代码并提交,网站会判断你的代码是否正确,很多大学都推荐计算机学生使用Codeforces来辅助学习。
除了刷题网站,还有几个刷题技巧分享给你:
1、要先看懂题目,如果20分钟都没思路就去找题解,不要死磕。
因为在面试中效率非常重要,面试官没有那么多时间等你,所以在日常的刷题中,我们就要培养自己的速度。
2、前期,按照知识点刷题,后期,不要把自己局限在知识点的框架里。
3、分析题目的解法并转化成自己的思路,并至少掌握两种解法,最好把别人的思路变成自己的,然后再吃透不同的解法。
第四部分:辅助的书籍推荐
最后推荐两本书,如果对逻辑还不清晰的话,可以去看看:《编程之美》和《剑指offer》。最后希望大家在大学里不要荒废大好时光,找准自己的定位,每一个阶段都有合适自己的刷题方式,我们不好高骛远,一步一个脚印,一定能完成自己的目标。