【第一章:C++后台开发学习路线】第3节:算法刷题提升路线
前言
痛点分析
个人总结下来,初期学习算法有以下几个痛点:
1.编程能力不足。初期由于编程能力不足会导致眼高手低,看着都会,写起来很费劲。
2.过于心急。很多同学在早期就想进入刷题阶段,算法基础还不扎实,题目类型都不熟悉,匆忙刷题只会打击自己的自信心。
3.效率低下。比如一开始就去看《算法导论》这样的大而全的书,会导致时间成本太高,效率很低。
4.选择困难。市面上太多资源,算法课,OJ,如何选择成为初期最大的困难。
5.定位错误。应对秋招的算法要求和算法竞赛的要求是不一样的,很多人缺乏明确的定位。
算法能力指的是什么
算法能力不是指算法工程师的能力,算法能力是一项通用的基础能力,指的是对于基本算法和数据结构的了解程度和解决通用算法问题的编程能力。
所以:算法能力 = 数据结构 + 基础算法 + 编程能力 + 逻辑思维。
数据结构:对基本数据结构的设计思路,使用场景,性能特点的熟悉程度。
基础算法:对基础算法的设计思路,使用场景,复杂度的了解程度。
编程能力:代码编写,边界检查,调试能力,优化能力。
应对春招实习,秋招面试,应该具备什么算法水平
算法能力是比较容易量化的,一般来说对于大部分人,你能够解决LeetCode上全部easy题和大部分中等难度题,就可以应对大部分国内互联网公司的应试要求,再细化来说就是LeetCode 400-500题量水平。
如今国内互联网公司越来越喜欢考察应届生算法知识,体现在这几个方面:
1.增加手写算法题数目;
2.手写算法题的结果直接决定面试是否通过;
3.算法问题深度增加;
以我个人实际经历来说,大厂的面试尤其会在第2点体现更加突出。就阿里来说,阿里的技术面试会在正式开始前,面试官会通过邮件发一道算法题,只有应聘者在规定时间内完成手写算法题,才会开始后续面试内容。这意味着,算法题将成为第一道门槛。目前我面试过的公司当中算法比重较高的几家公司如下:字节跳动,依图,商汤,小马智行等等。
常考算法知识点
- 排序:大部分要求能手写,并分析时间空间复杂度,以及稳定性分析
- 快速排序,插入排序,冒泡排序,选择排序,堆排序,归并排序,基数排序
- 树:需要了解结构,遍历方式,前中后序遍历
- 二叉树,红黑树,B树,B+树,Trie 树,胜者树,败者树
- 图:DFS,BFS,Dijkstra
- 拓扑排序;并查集;最短路径;最小生成树
- 散列表:实现原理,扩容,效率
- 字符串:KMP,Manacher,
- 数组、链表、二叉树、队列、栈的各种操作(性能,场景)
- 其他算法:2分搜
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
<p> 《收割BAT:C++校招学习路线总结》,专刊共计17节。专刊分为五大主要内容,包括后台开发学习路线、简历制作,面试技巧、BAT等名企面试真题解析和工作学习常用工具。本专刊将介绍我在技术成长过程当中的经验,通关BAT的面试技巧,并结合亲身经历的面试真题由浅入深的讲解后台开发方向的重点问题,让你们的求职之路更加顺畅。 本专刊购买后即可解锁所有章节,故不可以退换哦~ </p> <p> <br /> </p>