首页 > 编程语言 >一文讲清楚算法刷题-计算机专业新生必看

一文讲清楚算法刷题-计算机专业新生必看

时间:2024-08-20 21:07:37浏览次数:9  
标签:比赛 必看 C++ 学习 算法 https 计算机专业 刷题

哈喽,大家好,我是Sunny,你也可以叫我萨宁,一个热爱分享编程知识的程序员。我的昵称是Sunny不要停,寓意是美好的晴朗日子不要停下来,希望大家都能每天开开心心的。我的频道主要分享编程知识,生活,大学计算机学科学习,考研经验。目前已经上岸某211计算机专业,有大学学习,考研相关的问题,欢迎关注我,同名公众号[Sunny不要停]可以找到我的wx。

算法刷题,顾名思义就是利用一些方法解决问题,这种问题与高中遇到的数学问题,物理问题类似,不同的是需要计算机的辅助。

所以我们暂且不必畏惧它,它只是数学问题的plus版。在真正去做一件事之前,我们先了解一下它到底有什么用。

算法刷题的妙用

刷题最重要的作用是可以提升人的思维能力,尤其是利用计算机解决问题的思维能力。有了这种思维能力,无论是对项目开发,还是人工智能的理解都会上一个层次。通过计算机解决问题还可以获得成就感,就好像在高中时,你能做出别人做不出的题,那种感觉相信大家有体会。

思维能力也好,成就感也好,这都是比较虚的,那么回归到功利的角度,对于计算机的学生而言,刷题仍然必不可少。

我们以终为始,谈谈我的看法。

首先是就业

计算机的就业大部分是去私企(国企情况不太一样,关于计算机就业方向我们单开一期聊一聊),做的工作不外乎开发岗和算法岗。

这些工作在面试时都需要手撕算法题,一般每次技术面试都会随机抽两道算法题,你需要在面试官面前解题。能否解决算法题很大程度上会影响最终面试的结果,所以从私企就业角度来讲刷题是不可或缺的。

接着是比赛

刷题可以参加很多的比赛,每周在各大平台会有各种周赛,月赛,如果在部分平台的比赛拿到较好的名次,可以直通大厂面试。

其次是各种主办单位办的比赛,例如最有含金量,难度也是最大ACM/ICPC 区域赛、总决赛以及CCPC ,但是这些比赛想拿到铜牌及以上难度非常大,需要付出超越常人的努力。此外还有PTA的天梯赛,蓝桥杯大赛软件组,RAICOM机器人大赛的编程赛道,CCF-CSP认证等等。

2015年 ACM-ICPC 北京区域赛现场

在这里插入图片描述

2021年ACM-ICPC世界总决赛排行榜

在这里插入图片描述

蓝桥杯大赛

在这些比赛中拿到比较好的奖项,对于找工作有很大的帮助,其中ACM系列的比赛拿到铜牌及以上的奖项,在很多大厂(BAT等等)可以免机试。

还有就是可以加综测分,帮助评奖评优。考研复试时有这些奖项可能会得到更高的分数。

此外在这些比赛中拿到奖项,学校大概率会发奖金,几百几千不等,我见过一个专门打比赛拿奖金的同学,四年累计拿到20万美元。。。
在这里插入图片描述

最后是升学

从升学的角度来看,每年考研或者保研,在复试阶段一般都有机试,这个机试就是在规定时间内做几道算法题;有些学校没有机试,但也会以笔试的形式出几道算法题,让同学手写。

我是如何学习算法的?

这里的计算机是一个泛指,说的是计算机大类的学生,包括计算机科学与技术、软件工程、网络安全、大数据科学等等。

所以不难发现,算法刷题似乎成为计算机学生的标配,这也解释了为什么在很多大学ACM集训选拔那么火爆,计算机越好的大学越是如此。

如何开始对很多同学来说是个大问题,选择的方法不对很容易频繁跌跟头,四处碰壁,以至于最后放弃刷题。

我大一刚入学时,在某个晚自习打开刷题网站,选择第一题就开始做,看了半个小时一点思路也没有,然后放弃这道题,做第二道题,结果又是一点思路不会…这个晚上给我做自闭了。后来我才知道我一上来做的就是算法中非常难的专题动态规划。。。

好在在同专业好友的帮助下,我才逐渐重拾信心,摸索出了一条学习算法的道路。

  1. 学习一门/两门编程语言

    C语言和C++,这两门语言其实非常相似,C++是C语言的扩展版。我是先学C++,再学C语言。

    你可以思考一下,为什么我先学C++。
    我想的是既然C++是C语言的扩展版,那么C++会把原来复杂的操作简化,因为技术的进步一般都会使原来复杂的操作更加方便,那么C++的学习成本一定是更低的。

    学到什么程度呢?

    原则是只学重要的,不要追求一下子学完所有的,很多编程语言的课程动辄几百集,这会很劝退。我一直认为学习是个反复的过程,学完会忘是很正常的事,多用才不会忘。

    对于C++和C语言都只需要学完基础语法即可,C++的类及之后的内容刚开始可以不学。学习的时候可以对比对比编程语言之间的异同,你会发现编程语言直接都是相似的,当你学会一门,再学其他的会很快。

    在哪学?

    大多数的大学计算机老师上课都是念PPT,所以主动学习很重要,学会上哔哩哔哩大学[手动滑稽]。

    给大家推荐几个口碑还不错的课程吧。当然如果你觉得看书比看视频更容易学,相关的书籍也非常多,可以在搜索引擎上找找。

    C++:https://www.bilibili.com/video/BV1et411b73Z 前98集

    C语言:https://www.bilibili.com/video/BV17s411N78s

  2. 数据结构是算法的基石

    这部分理论性更加重一些,我入门看的是王道的数据结构,这部分除了外部排序,其他的都需要好好理解一下,这对之后的算法学习很重要。

  3. 开始学习算法&刷题

    学习算法有很多途径,如果你参加了学校了ACM集训,那么可能会有学长的讲的课程,此外各大平台(例如力扣,牛客,洛谷)都有自己的算法学习课程。

    我学的时候用的是Acwing 算法基础课,这个课程算是我的算法启蒙课,但是不得不说其实学习的难度还是很大的。学这个课程不能操之过急,因为大多数算法我们都没接触过,所以一定要一个专题一个专题啃下来,每一节课所讲的知识点,都要自己再去找相关的习题巩固。

    很有可能还是觉得抽象,这时候我会利用好搜索引擎找找有没有讲的比较好的、帮助理解的博客。

    哪里可以寻找到练习题?

    有非常多的OJ(Online Judge)提供广泛的习题以及在线测评。

    在给出这些OJ的地址前,我需要提醒一下,不要一味追求数量,用好两到三个即可。

    部分OJ:

    关于这些OJ的区别,如果大家想知道,我可以再出一期专门讲讲。

  4. 多参加比赛

    多参加比赛,以赛促练,这是一种很好的提升办法。

    我曾经想着要把全部的知识学完再参加比赛,但这种想法是不合适的,等我全学完,黄花菜都凉了。在比赛中可以发现自己的不足,激励自己提高。

    每周或者每个月在各个平台上都有免费举办的比赛。

    比较出名的有:

    • leetcode周赛/双周赛
    • 牛客周赛/月赛/挑战赛
    • Codeforces比赛(不定期,几天有一场)
    • AtCoder比赛
    • Acwing周赛

    此外还有就是上面我提到的蓝桥杯,天梯赛等等……

最后,行胜于言。算法学习光看不练永远学不会,多学多练,勤能补拙,沉下心来去学习,在路上你就已经超越很多很多人了……

最后的最后把我很喜欢的一句名言送给大家,与君共勉:种一棵树最好的时间是十年前,其次是现在。

标签:比赛,必看,C++,学习,算法,https,计算机专业,刷题
From: https://www.cnblogs.com/mrneojeep/p/18370321

相关文章

  • 【刷题】杨辉三角
    目录杨辉三角题目描述解题思路解题代码相同的树题目描述解题思路二叉树的层序遍历题目描述解题思路解题代码从底层层序遍历二叉树的最近公共祖先题目描述解题思路从前序与中序遍历序列构建二叉树题目描述解题思路从后序与中序遍历序列构建二叉树题目描述解题思路根......
  • 反序列化刷题(一)
    反序列化刷题web255将isvip改为true然后序列化echourlencode($v=serialize($f=newctfShowUser()));Cookie:O%3A11%3A%22ctfShowUser%22%3A3%3A%7Bs%3A8%3A%22username%22%3Bs%3A6%3A%22xxxxxx%22%3Bs%3A8%3A%22password%22%3Bs%3A6%3A%22xxxxxx%22%3Bs%3A5%3A%22isVip%22%3......
  • (免费源码)计算机毕业设计必看必学 php 酒店预约管理系统-92767-原创定制程序 java、PHP
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,酒店预约管理系统当然也不能排除在外。酒店预约管理系统是以实际运用为开发背景,运用软件工程开发方法,采用Thinkphp技术构建的一个管理系统。整个开发过程首......
  • 计算机毕业设计必看必学! ! 94755 spring boot高校毕业生就业信息管理系统,原创定制程
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校毕业生就业信息管理系统等问题,对高校毕业生就业信息管理系统进行研究分析,然后开发设计......
  • Leetcode每日刷题之18.四数之和
    1.题目解析这里的18.四数之和与之前的三数之和有着异曲同工之妙,所以建议看完三数之和再来看本题,详细题目见Leetcode每日刷题之15.三数之和 ,只不过这里需要寻找的是四元组,也是不能寻找重复的四元组并且四元组内的数字可以按照任意顺序返回2.算法原理关于四数之和的思路......
  • 苹果用户必看】微信分身震撼上线!双号并行,生活工作两不误,社交新潮流来袭!
    【独家揭秘】苹果用户必看!微信分身术,让你的社交圈层从此无界!一、在这个快节奏的时代,一个微信账号似乎已经难以满足我们多元化的社交需求。工作、生活、兴趣、学习……各种角色交织,如何在其中游刃有余?别急,今天就来给大家揭秘苹果用户的秘密武器——微信分身,让你的社交圈层从此......
  • 力扣刷题——3096.得到更多分数的最少关卡数目
    根据题意,假如alice选择完成第i关到第j关,那么bob需要完成第j+1关到第n关,其中i<=j<n。如此可以想到对关卡数组进行预处理,构建一个前缀和数组,保存假如从第0关每关都通过的话,到第i关所得到的分数。通过遍历一次前缀和数组,能够得到每个时刻alice得到的分数和bob得到的分数,当alice获得......
  • 【CTF刷题4】ctfshow刷题web部分wp(3)
    题目来源:ctfshow菜狗杯算力超群考点:抓包,eval()函数利用,漏洞利用打开发现是个计算器。一般碰到计算器就很容易和命令执行扯到一块。随便计算下然后抓个包发现是get方法,改参数让它报错。发现eval()函数。python语言,用危险函数eval()进行运算。这里我们使用沙......
  • 算法刷题记录 八十五【图论的广度优先搜索理论基础】
    前言图论章节第2篇。第1篇:记录八十二【图论理论基础及深度优先搜索算法】;本文:记录八十五【图论的广度优先搜索理论基础】一、广度优先搜索理论基础广度优先搜索理论基础参考链接1.1知识点框架1.2模拟广度搜索的过程在有向图中,以下图为例,如何进行广度优先搜索......
  • 打卡信奥刷题(574)用Scratch图形化工具信奥B2090[普及组/提高] 年龄与疾病
    年龄与疾病题目描述某医院进行一项研究,想知道某项疾病是否与年龄有关。因此对以往的诊断记录进行整理,统计0-18、19-35、36-60、61及以上这四个年龄段的患者人数占总患者人数的比例。输入格式输入共2......