考试步骤:
1. 花15分钟阅读题目,题目信息量大的时候需要注意给定的condition
2. 花15分钟解析题目,从简单的case开始分析,分析出处理问题的步骤
3. 根据解决问题的步骤尝试套用已有算法:
@ 是否是单源最短路径题目:djstra
@ 是否是多源最短路径: floyd
@ 是否含有负权:bellman ford
@ 是否是最小生成树:prim
@ 同上:kruskal
@ 是否是二分图:匈牙利算法
两个集合,互相有关联,但是集合内部没有关系
@ 是否是普通的逻辑运算题
@ 是否是贪心问题:
prim,djstra,bellman等都属于贪心问题,贪心问题每次要求最优,因此大家可以想象是否每一步都能决定最优,贪心问题不能回溯。
贪心是从上往下,而dp是从下往上,有一定的区别。
@ 是否是DP问题
@ 是否是bfs问题,queue的特性与题目要求正好相符
@ 是否是dfs问题之遍历题型
@是否是dfs问题之全路径题型
4. 编写代码
5. 调试
如果部分case对,调试步骤:
1. review题目,是否看漏了condition
2. 编写极限case,看是否哪里逻辑有问题
3. 逐行review代码,是否有低级错误==等
按部就班解题,结果不重要~~