前言
学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。
学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。我们在刚出生的时候,什么也不知道,是一张真正的白纸,我们靠学习的本能,学会了走路、说话、穿衣服…后来,我们上学了,老师把书本上的知识一点一点灌输到我们的脑子里,我们掌握的知识越来越多,与此同时,我们学习能力却好像越来越差了,习惯了被别人喂饱,似乎忘记了怎么来喂自己了。
学习本来只是一种本能,算不上什么能力,然而,经过二十多年的不断学习,学习反而成为了一种真正的能力,因为我们慢慢失去了它,它就更显得珍贵。
作为一个程序员,不断的学习更是重要,不学新的知识就迟早会被淘汰掉
现在几乎所有大厂的软件岗位面试都会有算法题的面试,那么该如何准备算法面试呢?
什么是算法面试?
算法面试只是技术面试的一部分,大家要意识到算法只是技术的一部分,技术还包括计算机基础知识、项目中的经验,解决问题的思路等等,因此不要把算法面试当作技术面试的全部。不要一提到软件岗位就是刷题。
如何准备算法面试
要多关注基础的数据结构与算法,基础的算法设计思想。面试中的题目不会特别难。高级数据结构除非特定岗位才会考查。
- 各种排序算法(手写快排)
- 基础的数据结构和算法实现:堆、二叉树、图
- 基础算法:如图的遍历、二分查找
- 算法设计思想:递归与回溯、分治、贪心和动态规划
一味地刷题效果是不明显的,只是盲目的刷题,只是关心题的正确与否,是很片面的,你可能只是会了一道题,如果使用相同方法的新题目出现,你可能就不会了,所以还是要先巩固好基础的算法与数据结构,算法设计思想,通过题来巩固这些知识,要掌握好学习和做题之间的平衡。后面再来总结一下学习算法的经验。这里给大家分享一份在GitHub上47k的算法宝藏手册,看完这份宝藏手册直接带你闭眼刷爆LeetCode,团灭 LeetCode!!
目录+内容截图
总目录
必读篇+算法解题套路框架
必读篇+算法解题套路框架目录
动态规划解题套路框架
双指针技巧总结
一、动态规划篇
动态规划篇目录
动态规划之子序列问题解题模板
团灭LeetCode打家劫舍问题
二、数据结构篇
数据结构篇目录
特殊数据结构:单调栈
如何计算完全二叉树的节点数
三、算法思维篇
算法思维篇目录
几个反直觉的概率问题
烧饼排序
四、高频算法面试篇
高频面试篇目录
五、linux shell技术
linux shell技术目录
最后的话
这一份在GitHub上47k的算法宝藏手册,这份笔记作者的初衷就是,做算法教程这个领域的标杆,**帮助大家应对算法面试。