剑指Offer-代码质量,问题分析,优化

  • 好看的结构,明确的命名,以及异常处理
  • 画图,举例,分解
  • 空间优化,时间优化

代码质量

完整性

  1. 功能测试
  2. 边界测试
  3. 负面测试

错误处理

  1. 使用返回值告知执行结果
  2. 全局变量
  3. 抛出异常

鲁棒性

  1. 不能存在崩溃风险,检查输入的合法性

问题分析

画图

将复杂的数据结构或操作形象化

举例子

将抽象问题具体化

分解

将复杂问题简单化

优化

时间优化

  • 用指针传复杂数据类型
  • 递归与循环并不相同

空间优化

  • 时间和空间的权衡