庖丁解牛 把数据结构的一个又一个知识点分解开来面试
It is important to view knowledge as sort of a semantic tree —— ElonMusk算法
覃超建议 把数据结构这么分:数组
if-else, switch -> Branch数据结构
for, while loop -> Iterationide
递归 Recursion(Divide & Conquer, Backtrace)oop
这里作个分割 下面的就是一些高级一点的算法学习
搜索 Search:深度优先搜索 Depth first search,广度优先搜索Breadth first search,A*, etc测试
动态规划 Dynamic Programming优化
二分查找 Binary Searchspa
贪心 Greedy
数学 Math,几何 Geometry
注意:在头脑中回忆上面每种算法的思想和代码模版
(动手绘制脑图去)
LeetCode上面有不少别人写的很是好的代码
刷题的方式(切题四件套)
Clarification(多看几遍题目 && 和面试官多沟通,确保本身对题目的理解是对的)
把题目看清楚 题目要干吗 很重要
Possible Solutions
全部可能的想法。不要只用想到的第一种解法去解。要去用全部可能想到的方法,从中找出最优解法
- compate (time / space)
- optimal (增强)
Coding(多写)
Test cases(测试用例要多写几个,给面试官大人感受,本身要善始善终)
五毒神掌
刷题第一遍
- 五分钟:读题 + 思考 (若是基础薄弱 能够给本身10分钟 最多15分钟)这里不能略过
- 有思路 直接作 直接写 || 超时 ——>> 直接看解法!注意!多解法,比较解法优劣(理解学习和运用算法 不是让你去造轮子)
- 背诵、默写这样好的写法(并非死记硬背便可,先背诵记住了以后,通常来讲确定就能理解了。不少题目之后看到就条件反射了)(不能打击本身的积极性)
刷题第二遍
- 立刻本身写(一开始可能会有bug 不要紧 debug debug debug 修改修改修改) ——>LeetCode提交
- 多种写法、体会 ——>优化!(最重要的是执行时间)
刷题第三遍
- 过了24 小时的时间之后,再次重复作题
- 不一样解法的熟练程度 ——> 专项练习
刷题第四遍
- 过了一周以后: 反复回来练习相同的题目
刷题第五遍
面试前一周恢复性的训练