关于粉丝提问:数据结构与算法的学习如何入门,应该具体怎么规划与训练?

  1. 算法的重要性:
    首先关于算法部分的提高,要怎么训练是没有什么捷径的,这一关其实相对来说是在求职以及考试过程中难度比较大但是别人帮不了你的一关,各类教程最多是以动画演示等相对更通俗易懂的形式,辅助你去理解算法的原理,但是leetcode这一关只能靠自己过,因为这个算是比较偏硬功夫的内容,但是它占的比重又很大,像大厂秋招的笔试,还有面试过程都有手撕代码环节,并且占的分值很大,所以说这一关是一定要过的。

  2. 针对性刷题:
    至于你说到目前大二,我觉得你不用太紧张,随着你后期编程逻辑思维与理解力的上升,算法能力肯定是会逐步提高的,你所提到树和图这两种数据结构中,还是挺蛮重要的,类似常用的二叉树是面试中经常考察的重点内容。关于有向图与无向图的内容,涉及的稍微少一点,数据结构与算法还是要有针对性的刷。

  3. 刷题内容:
    先做一些比较简单的题,我认为刷leetcode就够了,如果基础相对较差,可以先刷刷牛客网上的华为机试,对面向求职是完全没问题的,然后刷题内容的学习规划,我觉得你可以看一下数据结构的基础概念,常用的数据结构,例如数组,链表,哈希表,栈,大根堆,小根堆,队列等。以上是数据结构部分的内容,与算法相比,一些稍微正常的算法,类似dp动态规划,以及常用的八种排序算法。这类算法是针对数组数据结构的算法。

  4. 建议的刷题路线:
    算法是基于数据结构的基础之上实现的优化解题方法,比如针对二叉树数据结构的算法有,前序遍历,中序遍历,后序遍历,都是比较简单的算法,关于图的算法,比较稍微复杂一些的算法,就像我们拓扑排序判断有向无环图,如果学有余力还可以看并查集(不过并查集不在求职面试的考察范围),然后我觉得你要想参加蓝桥杯的话,可以把蓝桥杯的往届真题,刷2-3遍左右吧,你可以先试一试。
    以下是我给你的绘制的一些简单的算法刷题路线:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/baidu_39629638/article/details/130195244