算法问题解答流程
- 明确问题 => 交流明确要解决的问题
- 举例分析 => 用一些例子来尝试解决问题
- 描述大体思路
- 先给出暴力解 => 不要担心效率,Done is better than perfect
- 尝试优化 => BUD 原则 & 头脑风暴
- 给出最终思路过程 & 交流
- 代码实现 => 写干净整齐的代码,注意抽象模块化
- 给出测试用例
- 分析算法复杂度,回答问题
优化和解决问题
BUD 原则
- Bottlenecks => 瓶颈
- Unnecessary Work
- Duplicated Work
模拟
- 尝试从基本例子入手
- 简化和抽象问题,从特殊推广到一般
头脑风暴
利用数据结构的特性与边界条件
提高代码能力
- 做题的时候先理解思路,然后开始做题,做完题提交如果有错,记录下错误原因
- 每一次做这道题出现的错误都记录下来
- AC 通过后请记录思路
知识点
- 5W1H => When & Where & Who & What & Why + How
- immutable vs mutable => 不可变的 vs 可变的
网友评论