在很多程序员看来,数据结构,算法这类的东西感觉没用,在实践中用到的机会也很少,为什么呢?这个问题,我们可以反向来思考,大公司对算法尤其看重的理由是什么?锻炼程序员的基本功
面算法题能看出一个程序员的基本功, 算法与数据结构是计算机领域最最基础的学科, 计算机领域中更高级的学科或多或少都涉及到算法与数据结构, 说算法与数据结构是计算机其他领域的地基也不过分。而且对于校招的小伙伴来说, 可能并没有丰富的项目经验, 在面试官面前可能就如同一张白纸, 当然是一张很有潜力的白纸。这种情况下, 算法题便是面试的不二选择。算法作为程序员的"内功", 只有内功深厚的人才有潜力在计算机领域有所建树。多维度考察
面试中问算法题,也是一种多维度的考察, 面试官通过面算法题与面试者的沟通交流, 可以看出面试者的逻辑是否清晰, Debug 能力,编码习惯,能否写出可维护的代码,以及和未来同事沟通的能力等, 总而言之, 算法题能看出一个程序员的专业素养, 如果一个人连最基本的算法都弄不清楚,如何能放心把复杂的真实业务场景交其负责。准确高效的筛人方式
面算法题也是一种精确高效的筛人方式, 假如现在有两个人来面试, 第一个人框架用得很好, 但算法不扎实, 另外一个人有扎实的算法功底, 但一些框架技术不熟, 如果你是大公司的面试官你会选谁, 答案不言而喻。虽然第二个人并不熟悉某些特定的技术框架, 但我们也有理由相信, 他能迅速学习并胜任工作。况且现在技术更新迭代速度如此快, 只有学习能力强的程序员才能适应时代的发展, 而这样的人往往便是算法功底深的人。很多程序员随着代码越写越多,渐渐开始觉得算法、数据结构在自己的学习和工作中不那么重要,那是因为你已经掌握了很多算法数据结构,很多时候算法和数据结构,在编程中的帮助,是隐性的,是无声的。算法和数据结构,可能不会在你每一次的编程中起到作用,其基础是否扎实却往往是决定你和普通程序员间区别的地方。举个例子:
如果面试官问你,你是用过什么框架?
你会说使用过...
之后你谈了下使用这些框架的一些知识和遇到的坑,以及如何解决的?通过这样的问题,其实完全看不出来你的思维和编程能力,只能看出你是会这个东西。而面试算法和数据结构就不一样,他是最容易量化和体现你自身能力的。
很多初学者都不知道数据结构是什么,或是不理解数据结构,自然不能了解它的重要性。其实数据结构这个名字起得非常好,我们可以类比建筑结构去理解:一个工人不需要深入理解建筑结构,只要按照图纸拼好一砖一瓦就能盖楼;而工程师必须非常了解建筑结构,才能设计出稳固而完美的建筑。
再比如汽车结构,驾驶员不需要深入理解汽车结构,只需要知道挂挡、踩油门、踩刹车、转弯就能开好车,而如果要精通汽车,必须非常了解汽车结构。才能完成漂移等高难度动作。
数据结构,顾名思义,就是指数据的结构。编程时会用到各种各样的数据,这些数据如何存放,如何关联,怎样使用才能达到最高的增删改查效率?答案就是优化数据结构。
初学者很少接触到数据结构相关的知识,原因在于初学编程时,接触的数据量还不够大。此时要从表中查询一个字段,只需要遍历一次即可完成。而且查询时间是毫秒级的,非常“快”。然而,遍历一遍数据表的速度其实是很慢的,如果采用遍历查询的方式,当数据量达到百万级,查询一次将消耗十几秒的时间,当数据达到千万级,甚至上亿时,遍历查询的时间是不能忍受的。此时,你就会明白数据结构的重要性。如何高效的学习
说到了数据结构,那么我们就不得不提算法,通过算法来学习数据机构是非常有效的
算法的学习是有技巧的,因为已知的算法种类有限,将上图列出的几种算法系统的学习一遍,基本就会降低难度。想要系统学习算法,推荐新上架 👉 《7 周算法特训》的系统课程。感兴趣可以尝试去看下~另外理论不结合实践只是空中楼阁,除了理论学习外,平时可以在力扣上多刷题,练习算法知识。我们推荐的刷题方法是,不要想着“大而全”的每天去把每种题刷一遍,这样频繁的切换思路,容易抓不到重点。
比如:本周只刷二分法相关的题,理解二分法中的“套路”,将其钻研透彻之后,下一周再专门练习动态规划。以这样的方式学习,往往事半功倍。
以下我们罗列一些工作中经常会遇到时的一些算法问题,希望对大家有所帮助。👉 图
简而言之,很多人平时不会用算法和数据结构,在跳槽的时候,也会提前去复习算法和数据结构的知识,因为这是面试中很常见的问题。但我还是建议大家一直有这种能力,不要因为不常用而忽视这些基本的东西,基本的永远是精华。
❤️ 另外宣布一个好消息,本次力扣 2023 春招笔试季开幕啦!🌟 活动概要:
简历免筛,直击二面,一发入魂。
👏 通道已开启 - 欢迎大家踊跃报名~ 🎉
(具体详情按各场笔试详情页规则为准)
Tips:想获得企业报名实时消息,关注服务号回复:「开启通知」即可绑定。
BY /
本文作者:力扣
编辑&版式:Janson
声明:本文归“力扣”版权所有,如需转载请联系。
点个在看,少个 bug